セルE5に1月、2月、3月、4月、5月~12月という文字が
入るようになっています。
たとえば、E5に5月という文字が入ったら、セルのE6~
E38のセルに入っているデータをコピーして
別シートのR17~R38の所にデータを貼り付けたい。
たとえば、E5に4月という文字が入ったら、セルのE6~
E38のセルに入っているデータをコピーして
別シートのQ17~Q38の所にデータを貼り付けたい。という場合の
E5に6月の場合は、貼り付ける場所が、S17~S38
E5に7月の場合は、貼り付ける場所が、T17~T38
E5に8月の場合は、貼り付ける場所が、U17~U38
E5に9月の場合は、貼り付ける場所が、V17~V38
になります。
マクロの記述の仕方を教えてください。
No.4
- 回答日時:
>E5に5月という文字が入ったら
5月と入ったらすぐに(ボタンを押さないで)コピーしていいのか
ボタンを押した時に,5月と入っていたらなのか
ちょっと分からないのですが・・・
下記はボタンを押してから処理するようになっています。
(5月と入力されてすぐプログラムが動くようにする事もできますが、
間違えて入力した時にも、処理されますから、
ワンクッションいれた方が良いと思います。)
(1)元シート名、別シート名が分かりませんので、
Sheet1、Sheet2にしてあります。
違う場合は、
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
の""内を変更してください。
(2)1月ならばA列、2月ならばB列、・・・11月ならばK列、12月ならばL列
にコピーします。
(3)いろいろな書き方ができますので、私の書き方が最善とはいえません。
(もちろん、Copyメソッドを使った書き方もできます。)
********************この下から****************
Sub Test()
Dim ws1 As Worksheet 'コピー元
Dim ws2 As Worksheet 'コピー先
Dim mm As Integer '月
Set ws1 = Worksheets("Sheet1")
Set ws2 = Worksheets("Sheet2")
'E5セルに、[月]の入力があれば、[月]をなくし、数字に変換する
mm = CInt(Replace(ws1.Range("E5"), "月", ""))
ws2.Range(ws2.Cells(6, mm), ws2.Cells(38, mm)).Value = ws1.Range("E6:E38").Value
'変数の開放
Set ws1 = Nothing
Set ws2 = Nothing
End Sub
********************この上まで****************
何か分からない事があれば、補足してください。
No.3
- 回答日時:
>たとえば、E5に5月という文字が入ったら、セルのE6~
>E38のセルに入っているデータをコピーして
>別シートのR17~R38の所にデータを貼り付けたい。
コピー元とコピー先のセル数が一致しないのですが、書き間違いですか?
それとも空白のセルを除く等の処理が必要なのですか?
この回答への補足
すいません下記違えていました・
たとえば、E5に5月という文字が入ったら、セルのE6~
>E38のセルに入っているデータをコピーして
>別シートのE6~E38の所にデータを貼り付けたい。
たとえば、E5に4月という文字が入ったら、セルのE6~
>E38のセルに入っているデータをコピーして
>別シートのF6~F38の所にデータを貼り付けたい。
よろしくお願いします。
No.2
- 回答日時:
E5セルには5,6など数字だけ入れて、表示形式で5月
、6月・・・になるようにします。
VBE画面でF5キーでモジュール1でやりましたが
Sub test01()
a = Array("", "", "", "", "", "s17", "t17", "u17", "")
Range("E6:e38").Copy
Range(a(Cells(5, "E"))).Select
ActiveSheet.Paste
Application.CutCopyMode = False
End Sub
本当はシートにコマンドボタンを1つ貼りつけ、クリックイベントに変える方法が良いでしょうが、改造方法はわかりますよね。
上例では5,6,7月しかArray()に入れていませんが、残りの月も入れてください。
少数例でテスト済み。急いで手抜き済みません。
この方法はコピーと貼りつけ範囲に規則性がなくても改造して使えると思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
- Visual Basic(VBA) 指定月分の顧客データファイルを統合して並べ替え、所定の場所に貼り付ける 3 2022/09/10 07:55
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 3 2023/02/28 01:13
- Visual Basic(VBA) 4月~3月まで12カ月横に並んだ表へ指定範囲を貼り付けたい。 Sheet2の指定範囲、Range(" 2 2022/11/30 16:37
- Excel(エクセル) エクセルの表示形式について教えてください あるセルの「A」という値と、別のセルの「B」という値を組み 4 2023/02/21 21:55
- Visual Basic(VBA) vbaエクセルマクロ RemoveDuplicatesについて RemoveDuplicatesを使 1 2023/02/27 22:21
- Excel(エクセル) マクロ作成初心者です。CSVファイルの日付データについて 3 2022/12/14 06:02
- Visual Basic(VBA) ExcelVBAの複数指定範囲の構文 2 2022/05/26 22:39
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/25 11:55
- Visual Basic(VBA) シート間で同じ値があったらコピペ 1 2022/05/08 09:39
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
自治会の通常総会の年度について
-
「6月まで」というのは6月以内...
-
8月までっていつまでのことでし...
-
月の最後の週の呼び名は?
-
10月をもって辞めるって、10...
-
相撲の「夏場所」等の名称につ...
-
エクセルのフィルターを複数シ...
-
入社が2月1日とした場合、3ヶ月...
-
満何歳の意味
-
今は何年度ですか?
-
総会の年度表記について
-
昔の愛称?「~の字」
-
昔は何歳くらいからお酒を飲ん...
-
確認ですが普通5月までに決める...
-
思い出せなくて・・・
-
大学4年生から友達を作るのにい...
-
「なんで付き合おうと思ったか...
-
バイトを12月22日に辞めました...
-
「おじろく」は長男が死んだら...
-
神棚の移動について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
自治会の通常総会の年度について
-
総会の年度表記について
-
確認ですが普通5月までに決める...
-
カレンダーの日付 5/Bの意味に...
-
「6月まで」というのは6月以内...
-
10月をもって辞めるって、10...
-
8月までっていつまでのことでし...
-
満何歳の意味
-
月の最後の週の呼び名は?
-
エクセルのフィルターを複数シ...
-
今は何年度ですか?
-
昔の愛称?「~の字」
-
入社が2月1日とした場合、3ヶ月...
-
「1年以上」の定義について
-
○年後の3月末日を関数で出したい
-
学校の在籍機関
-
一ヶ月前、一ヶ月後
-
○月第○週 の数え方について
-
VBAで先月、先々月を求める方法
-
定年になる年度を関数で算出したい
おすすめ情報