No.3
- 回答日時:
ヒロモリさん、はじめまして
tom04さん、正回答がされているのにすみません。
>マクロの作り方をご教授・・とありますので、お節介します。
セルの値をセルアドレスとして参照し実行するので、自動記録マクロでは、記録できません。
所謂、VBAコードをVBEで書く必要があります。
Excelを開き、AltキーとF11キーを同時に押しVBE(エディター)を起動させます。
ご希望の処理をする場合、適当なのは、標準モージュールか処理されるシートのドキュメントモジュールです。
https://excel-ubara.com/excelvba1/EXCELVBA304.html
書き方は、モジュールで違いますが、先ず処理自体を考えてください。
A1セルにAAと入力して実行した場合は、AAと言うセルはありませんので、1004エラーになります。
ご質問の処理は、エラーの出る可能性が高いので、エラー処理か、A1セルにリストなどを適用する必要があります。
この場合、エラーを起こさない為の入力チェックと言う形が良いと思います。
例を挙げます。(標準モジュールの場合)
A1セルが空白の場合、②が表示されます。
セルアドレスでない文字の場合、①が表示されます。
これで、入力値(A1)によるエラーの発生を概ね防ぐ事が出来ますね。
さらに、
With ActiveSheet としたのは、実行するシートは明示的に行う癖をつけた方が良いです。
例えば、Sheets(1). シートインデックス や Sheets("名前"). シート名
.Value Valueプロパティはあえて書いてあります。この場合、省いて全く問題ありません。
しかし、省いた場合、省いていると言う事は、覚えておいてください。
Sub Test()
With ActiveSheet
If .Range("A1").Value <> "" Then
If Evaluate("ISREF(" & .Range("A1").Value & ")") = True Then
.Range(.Range("A1").Value).Value = .Range("B1").Value
' .Range("B1").Copy .Range(.Range("A1").Value) ' ③ 書式もコピー
Else
MsgBox ("A1セルはセルアドレスを入力してください。") '①
Exit Sub
End If
End If
Else
MsgBox ("A1セルにセルアドレスを入力してください。") '②
End With
End Sub
A1セルに入力されているセルアドレスにB1せるの値を入力する。
一行コードですが、VBAを作る時は、色々なケースを想定する事も必要ですね。
ちなみに③は、書式もコピーする場合です。
例(シートモジュールの場合)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Target.Address = "$A$1" Then Exit Sub
If Range("A1") <> "" Then
If Evaluate("ISREF(" & Range("A1") & ")") = True Then
Range(Range("A1")).Value = Range("B1")
' Range("B1").Copy Range(Range("A1")) ' ③書式もコピー
Else
MsgBox ("A1セルはセルアドレスを入力してください。") '①
Exit Sub
End If
Else
MsgBox ("A1セルにセルアドレスを入力してください。") '②
End If
End Sub
標準モジュールに書いたマクロは、マクロを登録したボタンやリボンから実行します。
https://www.tipsfound.com/vba/01004
シートモジュールに書かれたイベントマクロChangeは(例の場合)A1に値を入力した時に実行されます。
No.1
- 回答日時:
こんにちは!
一例です。
Sub Sample1()
Dim myAd As String
myAd = Range("A1")
Range(myAd) = Range("B1")
End Sub
くらいで大丈夫だと思います。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelについて A1からA12まで、1月〜12月と入力し、 B1からB12の範囲に、C1とD1に 4 2022/05/26 22:48
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- Excel(エクセル) Excel 関数 数式 について 2 2022/09/02 21:45
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Excel(エクセル) Excelで小数表記をそのまま角度表記にしたい 5 2022/04/04 12:34
- Excel(エクセル) ExcelのVBAコードについて教えてください。 1 2022/06/20 09:22
- Excel(エクセル) エクセルで、 A1セルに「A」という値、 B1セルに「B」という値が入っています。 どちらも表示形式 5 2023/02/22 23:05
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) エクセルで、特定のセルの内容を更新すると、別の特定セルに 更新日付が自動的に表示させる方法はあります 1 2022/11/14 21:03
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】スペースがいくつ入っ...
-
西暦や和暦の表示をyyyymmdd表...
-
【Microsoft Office Excel Comp...
-
Excelはなんで先頭の0を消すん...
-
Excelのセルを飛ばして入力する
-
別シートからの文字を変更
-
エクセルの行の抽出について質...
-
Excelのオートフィル
-
Excel 2019 のピボットテーブル...
-
スプレッドシート クエリ関数 1...
-
excelの不要な行の削除ができな...
-
Excel初心者です。 詳しい方、...
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
EXACT関数とIF関数の組み合わせ...
-
Excelのグラフ軸について
-
スマートな関数を教えて下さい。
-
Excelで全角を半角にしたいので...
-
【マクロ】エクセルにかいてあ...
-
Excel:一部のフォントでセルの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報