Excel2007です。下記のように、テーブル1があります。
列0 列1 列2 列3 列4
行1 1 2 3 8
行2 3 4 6 4
行3 2 2 4 2
列0~列4は、テーブルの見出しです。(列0と書いてあるところが、A1セルです。)
マクロで、行1・行2・行3のいずれかの行の列1~列3のセルを選択したいのです。
行1・行2・行3のいずれを選択するかは、動的に与えようと思います。
どのようにすれば、それができるかが質問です。
列は、構造化参照します。[列1]とか[列3]というのを使って指定したいと思います。
試しに、行を固定([行2])して、以下のコードを実行させようとしたら、エラーが出ます。
Sub Macro1()
Range("A3").Select
Range("テーブル1[[#This Row],[列1]:[列3]]").Select
End Sub
エラーは「実行時エラー'1004' 'Rangeメソッドは失敗しました:'_Global'オブジェクト」
[#This Row]というのはどのような使い方をするものなのでしょうか。
No.1
- 回答日時:
>[#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)が選択されるんです。
見出し部分ではなくて、データの行を選択するのは、見出し名を使うやり方ではできないんでしょうか。
No.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
●あくまでもこれはヘルプなどからの当方の理解ですので参考程度ということで。。。
以上です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) 列の最終行に新たに入力されたらその値を自動参照 1 2023/01/21 09:59
- Visual Basic(VBA) セルS2に入力した「月」と一致したB列の右隣へセルS110の値を転記する下記マクロを実行するとエラー 2 2022/12/06 17:32
- Visual Basic(VBA) excel2021で実行できないマクロ。どこを直したらいいのか 2 2022/03/28 03:40
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- Visual Basic(VBA) 最終列の右へSUM関数を作成するため下記コードを実行しましたが、最終列「10月28日」が上書きされて 3 2022/12/05 20:32
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Excel(エクセル) Excel VBA 空白行があるセル範囲に色を付ける 3 2022/06/13 15:58
- Excel(エクセル) エクセルのマクロを教えてください 2 2022/05/13 10:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセル初心者です 関数の入れ...
-
PowerPointで表の1つの列だけ...
-
LOOKUP関数を使えばいいのでし...
-
エクセルで二つの数字の小さい...
-
エクセルの表から正の数、負の...
-
エクセル 文字数 多い順 並...
-
50人を数回、グループ分けする...
-
エクセルで最初のスペースまで...
-
重複行を削除して数値を合算し...
-
Excelで、A列にある文字がB列...
-
A,B,C3種類の文字で無限列を作る
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
コミックマーケットについて
-
Excel元に戻す方法を教えてくだ...
-
エクセルで休日日数・連休日数...
-
VBAでセル入力の数式に変数を用...
-
エクセルで2列のセルを連続して...
-
エクセルマクロ:複数列 重複...
-
エクセルかグーグルスプレッド...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
エクセルで最初のスペースまで...
-
2つのエクセルのデータを同じよ...
-
エクセル(勝手に太字になる)
-
「B列が日曜の場合」C列に/...
-
エクセル 文字数 多い順 並...
-
EXCELで 一桁の数値を二桁に
-
エクセル 同じ値を探して隣の...
-
VBAで文字列を数値に変換したい
-
エクセルの並び変えで、空白セ...
-
Excelで半角の文字を含むセルを...
-
エクセルで文字が混じった数字...
-
Excel、市から登録している住所...
-
A列がない・・・A列が非表示に...
-
エクセルの表から正の数、負の...
-
[関数得意な方]教えて下さい・...
-
エクセルの項目軸を左寄せにしたい
-
エクセル 時間帯の重複の有無
-
Excelにてある膨大なデータを管...
おすすめ情報