マクロ初心者です。
下記のマクロを実行するためにはどうしたらいいでしょうか。
--------------------------
A B C D E F G
1 2 2 3 4 4 5
1
1
1
1
▼▼▼▼▼▼▼▼▼▼▼▼
A B C D E F G
1 2 2 3 4 4 5
1 2 2 3 4 4 5
1 2 2 3 4 4 5
1 2 2 3 4 4 5
1 2 2 3 4 4 5
--------------------------
今躓いている現状
A B C D E F G
1 2 2 3 4 4 5
1 2 2 3 4 4 5
1 2 2 3 4 4 5
1 2 2 3 4 4 5
2 2 3 4 4 5
2 2 3 4 4 5
2 2 3 4 4 5
2 2 3 4 4 5
・ ・ ・ ・ ・ ・
・ ・ ・ ・ ・ ・
・ ・ ・ ・ ・ ・
--------------------------
行に関してはその時々によって変わります。
よろしくお願いいたします。
No.1
- 回答日時:
良くわかんないけど、A列の終りまでに1行目のB~G列をコピーって
Range("B1:G1").Copy Range("B2", Cells(Rows.Count, 1).End(xlUp).Offset(, 6))
こうゆう事?
No.2
- 回答日時:
こうゆうことですか?
Public Sub 最後までコピー()
Dim row, maxrow As Long
maxrow = Cells(Rows.Count, "A").End(xlUp).row
For row = 2 To maxrow
Range("A" & row & ":G" & row).Value = Range("A1:G1").Value
Next
End Sub
すごい!ありがとうございます。
ほぼほぼ出来たのですが、出来ればA列は
全てが1とも限らないのでA列以外をコピーして頂きたいです。
お手数お掛け致しますがご協力お願い致します!
No.3
- 回答日時:
>分かりずらくてすみません、
>要はA列の最終行までB〜Gもコピーしたいんです。
はい、そのように書いているつもりですよ。
1行で十分出来てますけど?
ただし必ずB1~G1には何か値があるとした場合です。
でなきゃ、コピー元がないですしね。
No.4
- 回答日時:
>A列に何かしら記入されていたらB〜Gに決まった言葉を記入する
Range("B2", Cells(Rows.Count, 1).End(xlUp).Offset(, 6)).Value ="お元気?"
とか?
めぐみんさん
ありがとうございます!
できました!
ちなみにコレをB~Gでそれぞれ言葉を変えたいときはどこを変更すれば良いでしょうか?
No.5
- 回答日時:
あと回答ではないですが、No2さんの変数宣言の方法はVB(.NET)ならともかく、VBAでは適切ではないですね。
変数1つ1つに明確に型を宣言しないとVariantになってしまい、場合によっては混乱の元になる事も。
明確な型の宣言を必要とするか否かをきちんと判断してコードは作った方が良いと、10年ほど前に教わりました。
No.6
- 回答日時:
No2です。
>あと回答ではないですが、No2さんの変数宣言の方法はVB(.NET)ならともかく、VBAでは適切ではないですね。
>変数1つ1つに明確に型を宣言しないとVariantになってしまい、場合によっては混乱の元になる事も。
貴重なご指摘ありがとうございました。
dim a,b as longは
両方とも longになると思っていました。
たしかに TypeNameで確認すると aはVriantになってますね。
ベストアンサーはNo5の方へ。
No.7ベストアンサー
- 回答日時:
お礼を見て:
>ちなみにコレをB~Gでそれぞれ言葉を変えたいときはどこを変更すれば良いでしょうか?
全ては書いてませんけど。
Sub try()
Dim r As Range
Set r = Range("A2", Cells(Rows.Count, 1).End(xlUp))
' Offset(行,列)で書き込みたい所を決めます。
' 行に変更はないのでOffset(,列)と行を省略できます。
' ただし列毎に代入したい値が変わるので、列数分書かないと
' なりませんけどね
' 例えばB列の場合Offset(,1) A列から見て右に+1 となり
r.Offset(, 1).Value = "あああ"
' G列の場合 A列から見て右に+6 となり
r.Offset(, 6).Value = "かかか"
' と、Offsetの列数を変更する事で書き込みたい位置を変えます
' ちなみに0だと同じ列。-1だと左に変わっていきます。
' 今回はA列を基準にしてますのでマイナスはアウトですけど。
' 行はプラスが下方向、0は同じ行、マイナスは上方向です。
Set r = Nothing
End Sub
こんな感じになりますかね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロでコピー後の貼り付け先を毎回指定したところにしたい 5 2022/08/12 10:47
- その他(Microsoft Office) ワードのマクロについて教えてください。 1 2023/01/22 11:43
- Visual Basic(VBA) VBA 最終行まで数式をコピーする 3 2023/01/03 15:44
- Excel(エクセル) マクロ削除再抽出する方法を教えて下さい。 6 2022/11/26 11:03
- Excel(エクセル) 条件書式でリスト内以外の単語に色をつけたい 1 2022/09/23 13:23
- Visual Basic(VBA) VBAマクロでシートコピーした新シートにコピー元シートとの計算式の入れ方を教えて下さい。 5 2022/11/20 09:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで、あるセルの値に応じて...
-
VBAを使って検索したセルをコピ...
-
B列の最終行までA列をオート...
-
Cellsのかっこの中はどっちが行...
-
エクセルVBAにて =A1=B1とすれ...
-
VBマクロ 色の付いたセルを...
-
エクセルVBA intersect colu...
-
Worksheets メソッドは失敗しま...
-
文字列の結合を空白行まで実行
-
エクセルVBA シートモジュール...
-
【補足欄が足りなかったため、...
-
VBA 値と一致した行の一部の列...
-
vba 2つの条件が一致したら...
-
マクロ 関数を使った抽出でエラ...
-
【VBA】2つのシートの値を比較...
-
C# dataGridViewの値だけクリア
-
エクセル VBA ユーザーフォー...
-
別シートから年齢別の件数をカ...
-
グリッドの列の最大値を求めたい。
-
VBAで条件から範囲を指定して色...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Worksheets メソッドは失敗しま...
-
Excelで、あるセルの値に応じて...
-
B列の最終行までA列をオート...
-
vba 2つの条件が一致したら...
-
Cellsのかっこの中はどっちが行...
-
VBAを使って検索したセルをコピ...
-
VBAのFind関数で結合セルを検索...
-
文字列の結合を空白行まで実行
-
IIF関数の使い方
-
【VBA】2つのシートの値を比較...
-
マクロ 最終列をコピーして最終...
-
Changeイベントでの複数セルの...
-
VBA 何かしら文字が入っていたら
-
URLのリンク切れをマクロを使っ...
-
エクセルVBAにて =A1=B1とすれ...
-
VBAでのリスト不一致抽出について
-
データグリッドビューの一番最...
-
マクロについて。S列の途中から...
-
VBA UserFormからの転記で
-
targetをA列のセルに限定するに...
おすすめ情報
分かりずらくてすみません、
要はA列の最終行までB〜Gもコピーしたいんです。
ただ、現状手探りでやってると下の方まで無限にコピーされてしまうのでどうすればいいのかなと思い質問させていただきました。。
追記します。もしくは
A列に何かしら記入されていたらB〜Gに決まった言葉を記入する
みたいなことでもいいのですが可能でしょうか?