dポイントプレゼントキャンペーン実施中!

エクセルのVBAで、セルA1を選択します

Sub Macro1()
Range("A1").Select
End Sub

別の作業でA列に1行挿入すると
自動的にセルB1を選択してくれないと困るのですが、どうすれば良いのですか?

A 回答 (3件)

方法1:基本


セレクトしたいA1セルに、例えばシルシとして「ここ」と記入しておく

sub macro1()
cells.find("ここ").select
end sub
のようにシルシを探してそこを選ぶ

実際のシルシはあなたの実物のエクセルに応じて適切に自分で工夫する。




方法2:応用
セレクトしたいA1セルに、名前の定義で「ここ」という名前を定義しておく

sub macro2()
range("ここ").select
end sub
のように、そこを名指しで選択すればいつでもどこに行ってても選んでくれる。
    • good
    • 0
この回答へのお礼

そんなやり方があったんですね
有難う御座います

お礼日時:2014/08/23 19:55

No1の補足です。



行挿入ですから自動でB1選択じゃなくてA2選択ですよね。そのつもりで回答してます。

あと、たぶん以下のような処理でいけるような話ではないと思いますが、一応限定した環境の話ならということで。

Selectしたセルの上にしか挿入しないのであれば、たとえば10行目は使わないし10行目以降にはデータがないという状態でしたら10行目に何かしらのデータを記載しておいて絶対に消さないようにしておき(たとえば「消さない」とか書いておく)

下記のようなコードにしておけば(最初はA1を選択している例です)

y = Range("A" & Rows.Count).End(xlUp).Row - 9
Range("A" & y).Select

1行挿入してもコードは修正せずにA2が選択されるようになります。
    • good
    • 0

エクセルのVBAでは、手動で列や行の挿入をした場合、セル番地を自動で補正してくれる機能はありませんので、手作業で書き換えるしかありません。

VBAで挿入をする場合でも、その部分に適したセル番地を変更するコードを記載しておくしかありません。

たとえば

y = 1
x = 1
Cells(y, x).Select

としておいて、挿入のコードを書いた後で(上に1行挿入なら)

y=y+1
Cells(y, x).Select

などのようにしておくとかです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!