====*====*====*====*====*====*====*====*====*====*====*====*====*====*====*= [ 三流PG 番外編 今日の一品 No.015 ] 2000/03/23 木曜日 発送予定 =*====*====*====*====*====*====*====*====*====*====*====*====*====*====*==== 三流PG 番外編 今日の一品 は 隠し味として、 軽めのVBA関係のサブルーチンを載せていきたいと思います。 ----------------------------------------------------------------------------Excel97 VBA セルに付けた名前一覧を作成する
またまた、読んでいただいてすみません。 新人教育なってないのに、メルマガ発行中のKen3です。 前回、セルに名前を付けると便利です、、、と書きました。 まぁ、よくある話で、名前と番地の一覧を作成して納品してほしい と客先から要望があったので、作ってみました。 *納品物を楽して作るのも大切です。。。 '---- Excel97 VBA でテストしました ----- Const SX = 4 '書き込み開始座標 X Const SY = 3 '書き込み開始座標 Y Public Sub TESTMAIN() MAKE_NAMELIST ("D:\test.xls") '調査したいファイル名を渡す End Sub '調査ファイル名を受け取り、名前リストデータを作成する Public Sub MAKE_NAMELIST(fName As String) Dim i As Long Dim nCnt As Long Dim strSHEET As String Dim strNAME As String Dim strRANGE As String Dim wksSET As Worksheet 'ワークシート変数 '書きこみ先のブックを作成し、シートを追加 Workbooks.Add Sheets.Add '追加した新規のシートを変数に代入 Set wksSET = ActiveWorkbook.ActiveSheet wksSET.Name = "NameList" 'シート名変更 '列見出しを付ける wksSET.Cells(SY - 1, SX) = "Sheet" wksSET.Cells(SY - 1, SX + 1) = "Name" wksSET.Cells(SY - 1, SX + 2) = "Range" '調査ファイルを開く Workbooks.Open FileName:=fName, UpdateLinks:=0 'Nameの数 nCnt = ActiveWorkbook.Names.Count '名前、シート名、範囲を取得 For i = 1 To nCnt strSHEET = "'" & ActiveWorkbook.Names(i).RefersToRange.Worksheet.Name strNAME = ActiveWorkbook.Names(i).Name strRANGE = ActiveWorkbook.Names(i).RefersToRange.Address If strSHEET & strNAME & strRANGE <> "" Then wksSET.Cells(SY + i - 1, SX).Value = strSHEET wksSET.Cells(SY + i - 1, SX + 1).Value = strNAME wksSET.Cells(SY + i - 1, SX + 2).Value = strRANGE End If Next 'アクティブなブック、調査ファイル(当たり前だろ)を閉じる ActiveWorkbook.Close SaveChanges:=False '頭に戻す wksSET.Cells(SY, SX).Select Set wksSET = Nothing End Sub '--------------------------------- ポイントは、始めて使用したのですが、 Dim wksSET As Worksheet 'ワークシート変数 で、ワークシート変数?が取れます。 Set wksSET = ActiveWorkbook.ActiveSheet で、現在のシートを変数に代入しています。 あとは、 RefersToRange.Worksheet.Name RefersToRange.Address をヘルプで調べて、使用しただけです。 みなさんも、いろいろ、試してみてください。 *面白い使用方法、など見つかったら、教えてください。 調子にのって、計算式の一覧表を作成してやろうなんて思ったけど、 挫折しました。 やっぱ、三流だなぁ、、と声が聞こえてきたところで、このへんで、、 今日も逃げ出す、、、悪人 Ken3 でした。。。 今日の一言、、 もしかして、Excelの機能で名前一覧を印刷するや作成ってあったりして、、 一覧表作りなど、楽しましょうよ、、、
質問や要望など連絡方法でお互い確認が取りやすく、便利なのが掲示板なのですが、私の対応のまずさから不定期で荒れてしまい、掲示板は現在封鎖中です。(反省しなきゃ)
感想や質問・要望・苦情など 三流君へメッセージを送る。 時間的余裕のある要望・質問・苦情の場合は、下記のフォームからメッセージを送ることができます。 |
←パソコンの技術系の書籍を探しているなら コンピュータ関連の出版社33社(アスキー、インプレス等)が共同運営するコンピュータの本・専門店 ※種類が豊富で探し易い※在庫ありが48時間以内発送 |