- ベストアンサー
Excel2007でマクロを使って特定の行の特定の列を選択する方法
- Excel2007でマクロを使って特定の行の特定の列を選択する方法について教えてください。
- 質問者は、テーブル1の特定の行の特定の列を選択したいと考えています。試しに行を固定してコードを実行したところ、エラーが発生しました。
- 質問者は、[#This Row]という指定方法についても疑問を持っています。どのように使用するのか教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
テーブルを使ったことはないの何ですが、 ヘルプなどをチラッと眺めてみると [#ThisRow]はVBAでいうところのActiveCellとは違うようです。 試しに、セルに[#ThisRow]を使った参照式を入力してみてください。 (例えば、【行2】と【列3】の交点の値(6)を取得する参照式) 当方の言わんとしていることが分かると思います。 ------------------------------------------------ 【結論】 [#ThisRow]は手動で参照式を入力するセルの行のことなので それを表す方法のないVBAでは使用できない ------------------------------------------------ それを踏まえて、、、 >データの行を選択するのは、見出し名を使うやり方はできないんでしょうか 見出し名を使うとしたら部分的使用になるでしょう 例えば、 >Range("テーブル1[[#This Row],[列1]:[列3]]").Select Intersect(ActiveCell.EntireRow, Range("テーブル1[[列1]:[列3]]")).Select ●あくまでもこれはヘルプなどからの当方の理解ですので参考程度ということで。。。 以上です。
その他の回答 (1)
- hallo-2007
- ベストアンサー率41% (888/2115)
>[#This Row]というのはどのような使い方をするものなのでしょうか エクセルのVBAでは使いませんね。 ActiveCell.Row のことでしょうかね。 テーブル1とはシート名でしょうか であれば Sheets("テーブル1").Range("B" & ActiveCell.Row & ",D" & ActiveCell.Row).Select とか Range("B" & ActiveCell.Row & ",D" & ActiveCell.Row).Select だけでも? http://excelvba.pc-users.net/fol2/2_1.html 等が参考になるかと思います。
補足
ご回答ありがとうございます。 >テーブル1とはシート名でしょうか デザインリボンのプロパティのテーブル名に「テーブル1」と表示されているので、 テーブル1はテーブルのはずですが。 Range("テーブル1[[#Headers],[列1]:[列3]]").Select このようなコードなら、問題なく、見出し部分(列1・列2・列3)が選択されるんです。 見出し部分ではなくて、データの行を選択するのは、見出し名を使うやり方ではできないんでしょうか。
お礼
ご回答ありがとうございます。