(35) セル参照の復習と、自分仕様の「表検索2(列方向)」の作成!
1. CurrentRegion を利用して、列方向の「表検索」 機能を実装する
2. 「セル参照」の復習
Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。
Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
前回使用した XLSM ファイルを、「マクロを有効」にして開きます。
今回は、まだデータ入力していない「Sheet4」ワークシートを用い、VBAコードも「Sheet4」に実装します!(今回は、前回実装したコードの修正)
列方向(列を左から右)に検索したい「行」を含むセルをダブルクリックすると、「キーワード」入力のための InputBox が開く。
次の列をダブルクリックすれば、そこからもう一度検索も可能。
CurrentRegion プロパティが示すセル範囲は、上記画面で示したセル範囲となる。
上記セル範囲内のセルを1つ以上選択している場合、指定したセルを含む「表全体」が参照される。
このとき参照される「表全体」のセル範囲を「アクティブセル領域」といいます。
今回の実装例は「列方向で左から右に検索」するパターンで、前回の宿題の答えとなる。
そのため、VBAコードの説明は 前回 (34) の記事 を参照して頂きたい。
Range オブジェクト( Cells プロパティ )の 「 Offset プロパティ 」 と 「 End プロパティ 」 に関しては、以前に説明させて頂きました。
お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
1. CurrentRegion を利用して、列方向の「表検索」 機能を実装する
2. 「セル参照」の復習
「広告」
(35) セル参照の復習と、自分仕様の「表検索2(列方向)」の作成!
Excel メニューバーの [ヘルプ] - [更新プログラムのチェック] にて、適用されていないアップデートがあれば行ってください。
Excel 2016 for Mac 環境での説明となりますので、 Mac版 Excel 2011 では( VBA が利用できますが )同じ結果にならない場合があるかもしれません。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
前回使用した XLSM ファイルを、「マクロを有効」にして開きます。
今回は、まだデータ入力していない「Sheet4」ワークシートを用い、VBAコードも「Sheet4」に実装します!(今回は、前回実装したコードの修正)
列方向(列を左から右)に検索したい「行」を含むセルをダブルクリックすると、「キーワード」入力のための InputBox が開く。
次の列をダブルクリックすれば、そこからもう一度検索も可能。
'---------------------------------------- ' Event: Worksheet_BeforeDoubleClick() [ Ver.2 ] '---------------------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim row As Long Dim col As Long Dim region1 As Range Dim str As String Cancel = True row = Target.Row For Each region1 In
Target.CurrentRegion Exit For Next region1 str = InputBox("検索キーワードを入力してください", "キーワード", "") str = "*" & Trim(str) & "*" For col = Target.Column To (region1.Column + Target.CurrentRegion.Columns.Count - 1) If Cells(row, col).Value Like str Then Cells(region1.Row, col).Resize(Target.CurrentRegion.Rows.Count, 1).Select Exit For End If Next col End Sub
1. CurrentRegion を利用して、列方向の「表検索」 機能を実装する
CurrentRegion プロパティが示すセル範囲は、上記画面で示したセル範囲となる。
上記セル範囲内のセルを1つ以上選択している場合、指定したセルを含む「表全体」が参照される。
このとき参照される「表全体」のセル範囲を「アクティブセル領域」といいます。
今回の実装例は「列方向で左から右に検索」するパターンで、前回の宿題の答えとなる。
そのため、VBAコードの説明は 前回 (34) の記事 を参照して頂きたい。
2. 「セル参照」の復習
参照するセル | VBAコード | 説明 |
---|---|---|
「A1」セル | Range("A1") | 単独セル |
「A1」セルと「B3」セル | Range("A1,B3") | 複数の単独セル |
「A1〜B3」セル | Range("A1:B3") | セル範囲 |
「A1〜B3」セルと「C5〜D7」セル | Range("A1:B3,C5:D7") | 複数のセル範囲 |
「1〜3」行 | Range("1:3") | 複数行範囲 |
「A〜C」列 | Range("A:C") | 複数列範囲 |
「B3」セル | Cells(3,"B") | Cells(行,列) |
「B3」セル | Cells(3,2) | Cells(行,列番号) |
すべてのセル | Cells | アクティブシートの全セル |
Range オブジェクト( Cells プロパティ )の 「 Offset プロパティ 」 と 「 End プロパティ 」 に関しては、以前に説明させて頂きました。
次回も、 セル参照に関して 更に 説明します!
お疲れ様でした!
[command] + [Q] にてExcel を終了時、「作業中のブック」を保存するか確認のダイアログ画面が表示されるため 「保存」しましょう。
現状、 VBE 内で日本語を記述すると(貼り付けのみ可能な場合あり)乱れたり、保存時にクラッシュすることが多いため、 VBAコード は「未変換の英数字のみ」で記述してください。(テキストエディタからの貼り付けは可能)
「広告」amazon WINTER SALE
最後まで読んでいただき、ありがとうございます。ぜひ、右側の「人気ブログランキング」投票に ご協力ください。
また、お越しくださいませ。
// アタル
「広告」
コメント