システムメンテナンスのお知らせ

シート1にA~AZ列までのデータがあります。
これを全て配列に入れて呼び出す方法を教えてください。

シート1のデータをシート2へ貼り付けたいです。
貼り付ける列は、順序がバラバラでA~L、AZ、Q、AA、AF、Wの順に
シート2のA列から貼り付けたいです。
貼り付けるとA~Q列にデータが入るようになります。


1行目は項目なので貼り付ける必要はありません。
データは2行目からとなっています。

シート1はテーブルになっているので、そのまま貼り付けると
書式まで貼り付いてしまいます。
書式まで貼り付くと困るので、貼り付ける値は、値のみ貼り付けで行いたいです。


マクロのコードを教えてください。
出来れば、コードの解説もお願いしたいです。

宜しくお願いします。

gooドクター

A 回答 (1件)

こんにちは



作成方法は十人十色なので、一例です。

Sub sample_12297128()
' 使用変数の宣言
Dim sh1, sh2
Dim cData, d, c, n

' シートを変数にセット
Set sh1 = Worksheets("Sheet1")
Set sh2 = Worksheets("Sheet2")

' コピー対応データ定義
cData = Split("A2:L A2:L,AZ M,Q N,AA O,AF P,W Q", ",")

' 使用最終行を取得
n = sh1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
n = Application.Max(n - 1, 1)

' データに基づいて各列を順にコピー(繰り返し)
For Each d In cData
' データから対応列を取得
c = Split(d, " ")

' 対応列内の値をコピー
sh2.Range(c(1) & "2").Resize(n).Value = sh1.Range(c(0) & "2").Resize(n).Value

' 繰り返し終了
Next d

End Sub
    • good
    • 1
この回答へのお礼

ありがとうございます!とても分かりやすかったです。

お礼日時:2021/04/09 07:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング