定義ブック.xlsm : 項目名、項目カテゴリ名、項目名長、文字種類 を定義する為ブック。
辞書ブック.xls : 項目カテゴリ名、項目名長、文字種類をこのブック内で色々処理して設定している。
定義ブックの項目名で検索し、
辞書ブックの項目カテゴリ名、項目名長、文字種類を参照してくる。
定義ブックを開いた時に辞書ブックの内容から値を参照(vlookup)するようにしたいです。
定義ブック、辞書ブック、ともに今後、行数が増える想定なので、
何行目まで、というのを変数にしてマクロで実装しようとしています。
そこで、
Application.WorksheetFunction.VLookup()
を使ってみたのですが、そのセルが正常に値を表示しません。
vlookupをセルにベタ書きにすれば値は取得できている為、検索値が見つからない為にエラーになっている系統ではないハズです。
エクセルのバージョンは2007です。
また、エクセルにvlookupをベタ書きするようにマクロを組むと、それは正常に値を表示します。
(最悪この手ですが…、セルにカーソルを合わせるとvlookupの式が表示され、避けたいトコロです)
どのように修正すれば良いでしょうか…?
マクロは初心者です…。
以下、ソースの抜粋です。
******************************************
Dim ItemCode As Variant
Dim SerchArea As Variant
Dim LastRow As Long
'辞書ブックをアクティブにする
Workbooks("辞書ブック.xls").Activate
ActiveWorkbook.Worksheets("辞書シート").ActivateLastRow = Cells(Rows.Count, 1).End(xlUp).Row
'項目数を取得
Dim LastRow As Long
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'最終行を取得(辞書ブック.辞書シートのvlookupを何行目までの範囲にするか)
SerchArea = "[辞書ブック.xls]辞書シート!$B$5:$F$" & LastRow
'定義ブックをアクティブにする
Workbooks("定義ブック.xlsm").Activate
ActiveWorkbook.Worksheets("定義シート").Activate
For I = 11 To ColumnCnt
'C11セルから下へ、項目名を検索値として取っていく
ItemCode = Cells(I, 3)
'辞書ブックから値を取得(項目カテゴリ名) 【この書き方だとセルには「value!」と表示される】
Cells(I, 16).Value = Application.VLookup(ItemCode, SerchArea, 2, False)
'辞書ブックから値を取得(項目名長) 【この書き方ならセルには正しく値が表示されるけど、勿論、セルにカーソルを合わせると、vlookupの式が表示される】
Cells(I, 38).Value = "=VLOOKUP(C" & I & ",[辞書ブック.xls]辞書シート!$B$5:$F$" & LastRow & ",4,FALSE)"
Next I
No.1ベストアンサー
- 回答日時:
>何行目まで、というのを変数にしてマクロで実装しようとしています。
辞書の範囲が増えても
Range("B:F")
と指定すれば最終行を求める必要はないのですが
マクロ上でVLOOKUPを利用する場合
Application.VLookup(検索値, 範囲, 列番号, 検索方法)
範囲(SerchArea) は Rangeオブジェクトです
ちと修正すると
Sub sample()
'ここから
Dim objWBK As Workbook
Dim objSH As Worksheet
Dim SerchArea As Range
Set objWBK = Workbooks("辞書ブック.xls")
Set objSH = objWBK.Worksheets("辞書シート")
Set SerchArea = objSH.Range("B:F")
'ここまでが検索範囲の定義です
For I = 11 To ColumnCnt 'ColumnCntは変数ですか?提示されたマクロには定義されていませんが、そのまま残しておきます
ItemCode = Cells(I, 3)
Cells(I, 16).Value = Application.VLookup(ItemCode, SerchArea, 2, False)
Next
End Sub
これで動くな?
No.2
- 回答日時:
追記:
ちなみにVLOOKUPでは項目は1つしか取得できないため4項目をコピーするのに4回実行が必要ですが
Findメゾットを利用すると
Sub sample()
Dim objWBK As Workbook
Dim objSH As Worksheet
Dim SerchArea As Range
Dim ItemCode As Range
Set objWBK = Workbooks("辞書ブック.xls")
Set objSH = objWBK.Worksheets("辞書シート")
Set SerchArea = objSH.Range("B:B")
For I = 11 To ColumnCnt
Set ItemCode = Cells(I, 3)
Buf = SerchArea.Find(What:=ItemCode.Value).Offset(0, 1).Resize(1, 4)
ItemCode.Offset(0, 1).Resize(1, 4) = Buf
Next
End Sub
一回の処理で4列分コピーできます
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- その他(Microsoft Office) エクセルについて教えてください。 2 2022/10/20 14:55
- Visual Basic(VBA) 2つ目のコンボボックスが動作しません。 3 2023/03/25 12:29
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パソコンでダウンロードしたmp4...
-
データバックアップ フリーソフ...
-
全画面にした時の比率が最近変...
-
メモ帳の操作について
-
Windows7の初期化をしたら見れ...
-
スリープ中でもOSのアップデー...
-
パソコンの引っ越し作業につい...
-
Windows 7 SP3更新
-
Windows vistaのパスワードが分...
-
Win7 のOSを搭載したPCは、Win1...
-
Windows 11へアップグレードす...
-
AL-Mail32とWindows11
-
Windows11のパソコンについて。
-
Windows11でoffice64bit版をイ...
-
Windowsで、画面の上部の「ファ...
-
パソコンについてなぜwindowsxp...
-
突然の「Windowsラインセンス認...
-
現在の入力モード(日本語、英...
-
ソフトがInternet Explorerでし...
-
Windows 7 Starter
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パソコンでダウンロードしたmp4...
-
スリープ中でもOSのアップデー...
-
データバックアップ フリーソフ...
-
全画面にした時の比率が最近変...
-
Windows 7 SP3更新
-
AL-Mail32とWindows11
-
パソコンについてなぜwindowsxp...
-
ウィンドウズ操作
-
Windowsで、画面の上部の「ファ...
-
Win7 のOSを搭載したPCは、Win1...
-
2020年現在でcorei7 4770って使...
-
Windows7の初期化をしたら見れ...
-
Windows11でoffice64bit版をイ...
-
パソコンのハードデスクが壊れ...
-
富士通のWindows7です。パソコ...
-
windows7でitunesはもう使えな...
-
Windows 7 画面右下のお知らせ...
-
パソコンの引っ越し作業につい...
-
Windows7でMicrosoft VirtualPC...
-
ショートカットキー 応用編 ど...
おすすめ情報