Excel VBA質問箱 IV

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

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


23767 / 76738 ←次へ | 前へ→

【58331】Re:マクロの相対参照?について
発言  ichinose  - 08/10/20(月) 1:26 -

引用なし
パスワード
   ▼kenken さん:
こんばんは。


>普通のエクセルでは列の挿入をしても数式が記入されているセルは
>それに応じて変更されると思います。
>例 C1セル=A1*B1 が入力されていて、B列に1列挿入すると
>  D1セル=A1*C1 と自動的になりますよね
>
>しかし、マクロでは
>Sub 例()
> Worksheets("sheet1").Range("B1") = "aaaa"
>End Sub
>などのマクロがあっても、後々作成していく中でB列を挿入して
>も自動的にマクロがC1には変わりませんよね?

名前の定義を使うとそれらしい変化は見られます。

新規ブック(Sheet1というシート名が存在すること)の標準モジュールに


'=============================================================
Option Explicit
Sub 準備()
  ActiveWorkbook.Names.Add Name:="sheet1!氏名", RefersToR1C1:="=Sheet1!C2"
  Worksheets("sheet1").Range("b1").Value = "氏名"
End Sub
'=====================================================================
Sub test()
  With Worksheets(1).Range("氏名")
    .Cells(.Rows.Count).End(xlUp).Offset(1, 0).Value = _
                 Application.InputBox("input")
    End With
End Sub

まず、「準備」を実行して名前の定義や項目名を設定します。

上記のプロシジャーが正常に終了したなら、「test」を実行してみてください。
(但し、Inputboxで「キャンセル」はなしということで・・・)

B2から順次入力が可能になります。

B列に列挿入を行い、再び「test」を実行して適当な文字を指定して下さい。

指定した文字列は希望通りC列に入力されませんか?

後は、名前の定義にどれだけ便利な数式を登録するかですが・・・。

0 hits

【58330】マクロの相対参照?について kenken 08/10/20(月) 0:07 質問
【58331】Re:マクロの相対参照?について ichinose 08/10/20(月) 1:26 発言
【58344】Re:マクロの相対参照?について kenken 08/10/20(月) 19:47 質問
【58345】Re:マクロの相対参照?について りった 08/10/20(月) 20:33 回答
【58346】Re:マクロの相対参照?について kenken 08/10/20(月) 21:18 お礼
【58356】Re:マクロの相対参照?について ichinose 08/10/21(火) 8:40 発言

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