[[20150527014651]] 『名前の定義を自動的に付けれますでしょうか』(ど素人で判りません) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『名前の定義を自動的に付けれますでしょうか』(ど素人で判りません)

 E1  E56  E111  E166   E221   E276 …… E1321 まで 続きます
 E列の1から 55行ごとです

 それで、今までは そのセルに入った文字を 名前の定義を押して 名前を付けていました

  E1 に 1月 山本邸  と入力したら 名前の定義で
  E1 に 1月 山本邸 と名前を付けていました E1321 まで 続けて合計25 の現場の名前です

 これを わざわざ 名前の定義を押して 名前の定義を入れなくて
 自然に名前の定義が E1に 1月 山本邸…  と入力されたら 自然に E1セルに1月 山本邸…  とE1321 まで それぞれの現場の名前が 自然に名前の定義 がされれば
 凄い助かるのですが

 左上の名前ボックス に一覧として 25個の名前がずらーっと 自動的にセルに入力された通りの名前が自動的に付く…

 しかも E1のセルとかの 文字が、後日 変更されて 1月 山本邸 が 
 1月 山本太郎邸  と変更されたら  

 名前も 自動的に 1月 山本太郎邸…  と変更される
 これって 不可能な事でしょうか?

< 使用 Excel:Excel2013、使用 OS:Windows8 >


 何故に名前の定義が必要なんですか?

 マクロ組めばできなくはないですけど、
 そのセルだけ名前の定義する理由がわからないです。
(稲葉) 2015/05/27(水) 08:18

別シートにでも、現場番号と現場名称の対応表を作成。セルは2つ用意し、番号を入力すると名称をVLOOKUPで検索表示するようにしてはいかがでしょう?

名前の定義は、一見して存在に気づかないため、前のブックをコピーし、中身を消して使うような人がいると、定義が蓄積し肥大化する原因になりますので、なるべく使わない方が良いです。
(???) 2015/05/27(水) 09:47


ありがとうございます
現場の請求書とかが 上から1枚目から下に25枚続いていて それが隣のシートに一覧表になっているのですが
直接かまうのは その1〜25に表なのですが 何枚目が山本邸だったか というのを隣のシートの一覧表
を開いてから じゃないと判らないので
隣のシートを開かずとも 1〜25の 下に続いている請求書の 名前の一覧が左上の名前ボックスに 自然に一覧として並べば それを押したら その5番目の請求書に飛ぶから… 
と今は 手で名前の定義で 付けていっているのですが これが自動的になれば と思いましたm(__)m

すみません もし出来たら 宜しくお願い致します
(ど素人で判りません) 2015/05/27(水) 20:01


 状況が良く理解できなかったのですが、単一シートだけでの運用の前提です。
 仕様を誤解していたら、読み捨ててください。

 Private Sub Worksheet_Change(ByVal Target As Range)
    Dim r As Range
    For Each r In Target
        If r.Column = 5 And r.Row Mod 55 = 1 Then
            UpdateName
            Exit Sub
        End If
    Next
 End Sub

 Private Sub UpdateName()
    Dim nm
    For Each nm In ActiveWorkbook.Names
        nm.Delete
    Next

    Dim r As Long
    Dim n As Long
    For r = 1 To 1321 Step 55
        If Cells(r, "E").Value <> "" Then
            n = n + 1
            ActiveSheet.Names.Add "No" & Format(n, "00") & "_" & Cells(r, "E").Value, Cells(r, "E")
        End If
    Next
 End Sub

 シート構成や運用の工夫で済む気はしますが・・・。

(Mook) 2015/05/27(水) 22:08


Mook 様 ありがとうございますm(__)m
このマクロの式を入れたのですが変化がなくて(>_<)  
私がやり方が間違ってると思いますm(__)m

それと… ちょっと間違って書いてしまいましたm(__)m
 F2 F57… と 55ずつで最後が F1322 でしたm(__)m すみません

それで この式を 入れてみたのですが

開発→visual basic →表示→コード→白い画面が出てきてその一番上にはsheet1とか書いてあります→
で 上の式を貼付けて→ そして上の×で閉じてエクセルに戻る… 

これでいいでしょうか(^_^;) m(__)m
すみません 判りませんm(__)m

これで入れてみましたが 今は最初の通りの E1とか E56とかに 田中邸 とか山本邸 とか入れてみましたが
左上の名前ボックスの▼マークを押しても
print_Area とだけしか羅列してきません (^_^;) すみません 何が間違っていますでしょうか

すみません 宜しくお願い致しますm(__)m
(ど素人で判りません) 2015/05/28(木) 02:05


名前定義を全部削除してから、新たにF列のものを全部定義するようにしています。
消したくない名前定義があれば、If文で除外してください。

Mookさんの例では、名前定義の前に番号を付加し、何番目か判りやすくする工夫がしてありますね。

 Sub test()
    Dim i As Long

    With ActiveWorkbook
        For i = .Names.Count To 1 Step -1
            .Names(i).Delete
        Next i

        For i = 2 To 1322 Step 55
            If Cells(i, "F").Value <> "" Then
                .Names.Add Cells(i, "F").Value, "=" & Me.Name & "!" & Cells(i, "F").Address
            End If
        Next i
    End With
 End Sub
(???) 2015/05/28(木) 09:29

 請求書Noがわかるだけで良ければこんな感じでもいいんじゃないですか??
    Sub test()
        Dim a
        a = Filter([TRANSPOSE(IF(MOD(ROW(E1:E1322),55)=1,"NO"&INT((ROW(E1:E1322)/55)+1)&"_"&E1:E1322,CHAR(2)))], Chr(2), False)
        If IsArray(a) Then
            MsgBox Join(a, vbNewLine)
        End If
    End Sub

(稲葉) 2015/05/28(木) 09:57


目的は、一覧表示から1つ選択すると、その行に飛ぶことですからね。名前定義は面白い考え方だと思いますよ。(管理が面倒ですが)

私が実現するならば、例えば1行目を行固定。A1セルをデータの入力規則で別表の範囲指定から選択式にする。
そして、Worksheet_Changeイベント時に飛ぶコーディングをしますね。
(???) 2015/05/28(木) 10:14


 名前を変更しないで、どの現場がどのNoだけ分かれば
 そのNoに飛ぶっていう管理もできると思うんですけどねぇ・・・

 現場名のところを、入力規則で可変にしてあげれば
 HyperLink関数とか使って、=HYPERLINK("#E"&MATCH(現場名,E:E,0),"リンク")
 でもいいと思うんですけどねぇ。
(稲葉) 2015/05/28(木) 10:42

(???)様 稲葉様 ありがとうございます
両方教えて頂いたものを コピーして貼り付けました。それで 今名前定義は全く入っていないのですが
F2に 山田邸 と入れても F57に伊藤邸  と入れても 左上の名前ボックスには print_Area  とだけしか 入ってきません(-_-;)
何が 間違っていますでしょうかm(__)m
最初に 開発→visual basic→左上の コードの表示を押して→マクロを貼り付けて→オブジェクトの表示 というアイコンを押して→ F2山田邸  F57に伊藤邸   と入れてみました  でも 変化がないです
何が おかしいでしょうかm(__)m

(ど素人で判りません) 2015/05/29(金) 02:21


 イベントじゃないからねぇ。
 都度実行させないと???さんと私のものは動きませんよ。
 Mookさんのものも、シートモジュールに入れないといけませんし。

http://www.happy2-island.com/excelsmile/smile01/capter00400.shtml

 聞く前にまず調べてください。
 素人は免罪符になりませんよ。
(稲葉) 2015/05/29(金) 08:08

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.