Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8913 / 13644 ツリー ←次へ | 前へ→

【30316】マクロがあるシートに列を挿入した場合 pen 05/10/25(火) 10:36 質問[未読]
【30320】Re:マクロがあるシートに列を挿入した場合 ponpon 05/10/25(火) 13:57 発言[未読]
【30333】Re:マクロがあるシートに列を挿入した場合 pen 05/10/25(火) 16:11 お礼[未読]
【30326】Re:マクロがあるシートに列を挿入した場合 Statis 05/10/25(火) 14:44 発言[未読]
【30335】Re:マクロがあるシートに列を挿入した場合 pen 05/10/25(火) 16:15 質問[未読]
【30336】Re:マクロがあるシートに列を挿入した場合 Statis 05/10/25(火) 16:26 発言[未読]
【30337】Re:マクロがあるシートに列を挿入した場合 Jaka 05/10/25(火) 16:31 回答[未読]
【30369】Re:マクロがあるシートに列を挿入した場合 pen 05/10/26(水) 8:48 質問[未読]
【30370】Re:マクロがあるシートに列を挿入した場合 Jaka 05/10/26(水) 9:13 発言[未読]
【30375】Re:マクロがあるシートに列を挿入した場合 pen 05/10/26(水) 10:13 お礼[未読]

【30316】マクロがあるシートに列を挿入した場合
質問  pen  - 05/10/25(火) 10:36 -

引用なし
パスワード
   Excel2002を使用しています。
最近マクロの勉強を始めたばかりです。
質問なのですが、
あるシートにマクロを貼り付けたボタンがあり、
使用しているのですが、
もし列を挿入したり削除した場合、
コードに書いてある列が
例えばB列がA列になったり、セルが(1,3)が(1,2)に
なってしまいますが、
これを防ぐ方法はないのでしょうか?
(列が挿入されたり削除されたりしても
マクロを書きなおさなくてよい方法)

また別件なのですが、
Application.Goto [A1], True
この場合はなぜ""でなく、[]になるのでしょうか?

大変初歩的な質問ばかりで申し訳ございませんが、
よろしくお願い致します。

【30320】Re:マクロがあるシートに列を挿入した場合
発言  ponpon  - 05/10/25(火) 13:57 -

引用なし
パスワード
   こんにちは。

>例えばB列がA列になったり、セルが(1,3)が(1,2)に
>なってしまいますが、

どんなコードなのか分からないから何とも言えませんが、
難しいと思います。
コードによっては、可能かもしれません。

>Application.Goto [A1], True

[A1]は、Range("A1")の省略形です。
なぜと言われても、そういう仕様です。
私も、ここで教えてもらいました。

【30326】Re:マクロがあるシートに列を挿入した場合
発言  Statis  - 05/10/25(火) 14:44 -

引用なし
パスワード
   ▼pen さん:
こんにちは
>Excel2002を使用しています。
>最近マクロの勉強を始めたばかりです。
>質問なのですが、
>あるシートにマクロを貼り付けたボタンがあり、
>使用しているのですが、
>もし列を挿入したり削除した場合、
>コードに書いてある列が
>例えばB列がA列になったり、セルが(1,3)が(1,2)に
>なってしまいますが、
>これを防ぐ方法はないのでしょうか?
>(列が挿入されたり削除されたりしても
>マクロを書きなおさなくてよい方法)

挿入や削除をしてもコードを変更しないようなレイアウトを作るか
コードが挿入削除に対応するコードにするしかないですね。

どちらにしても何のために削除や挿入をするのかわからなければ
答えようがありませんが。


>また別件なのですが、
>Application.Goto [A1], True
>この場合はなぜ""でなく、[]になるのでしょうか?
>
>大変初歩的な質問ばかりで申し訳ございませんが、
>よろしくお願い致します。


仕様ですね。
Range プロパティのショートカットとして使えるようです。
ヘルプで「ショートカットを使ってセルを参照する」を確認してください。

【30333】Re:マクロがあるシートに列を挿入した場合
お礼  pen  - 05/10/25(火) 16:11 -

引用なし
パスワード
   [A1]は、Range("A1")の省略形だったんですね!
どうもありがとうございます^^

【30335】Re:マクロがあるシートに列を挿入した場合
質問  pen  - 05/10/25(火) 16:15 -

引用なし
パスワード
   Statisさん、
どうもご回答ありがとうございます。

削除や挿入をする理由ですが、
たまに参照するデータが増えるため、
1ヶ月に1回程度マクロを書き直して使っています。
(この作業自体は毎日行うのですが)
そのため、コードの書き方で、
このように表の列が増えたり減ったりしても
対応できるようにする方法があれば・・と思い
投稿させていただきました。

【30336】Re:マクロがあるシートに列を挿入した場合
発言  Statis  - 05/10/25(火) 16:26 -

引用なし
パスワード
   ▼pen さん:
こんにちは、
>どうもご回答ありがとうございます。
>
>削除や挿入をする理由ですが、
>たまに参照するデータが増えるため、
>1ヶ月に1回程度マクロを書き直して使っています。
>(この作業自体は毎日行うのですが)
>そのため、コードの書き方で、
>このように表の列が増えたり減ったりしても
>対応できるようにする方法があれば・・と思い
>投稿させていただきました。

残念ながら、処理内容が判りませんのでお答えようがありません。

【30337】Re:マクロがあるシートに列を挿入した場合
回答  Jaka  - 05/10/25(火) 16:31 -

引用なし
パスワード
   列や行挿入するとづれるですが、
名前定義を使ってください。

例えばA列を選択して、挿入→名前→定義 で、「行A」とし、追加→OK。

固定列の参照は、こんな感じで...。

Cells(5, Range("行A").Column).Select

名前定義してもこんな風にも使えます。
For i = 1 To 5
  Cells(i, 1).Value = i
Next

For i = 1 To 5
  Cells(i, Range("行A").Column).Value = i
Next

【30369】Re:マクロがあるシートに列を挿入した場合
質問  pen  - 05/10/26(水) 8:48 -

引用なし
パスワード
   どうもありがとうございます!

すみません、質問があるのですが、
名前で定義した場合、列全体じゃなく、
例えばA3:A4を行Aとしても問題はないのでしょうか?

【30370】Re:マクロがあるシートに列を挿入した場合
発言  Jaka  - 05/10/26(水) 9:13 -

引用なし
パスワード
   ▼pen さん:
>名前で定義した場合、列全体じゃなく、
>例えばA3:A4を行Aとしても問題はないのでしょうか?
問題があるかどうかは、1度ご自分で試されたらどうでしょうか?
セルが2つ程度で、別々に使うんだったら、各セルに名前をつけたら良いと思います。

【30375】Re:マクロがあるシートに列を挿入した場合
お礼  pen  - 05/10/26(水) 10:13 -

引用なし
パスワード
   どうもすみませんでした。。
ありがとうございました。

8913 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free