質問: エクセルの配列マクロを教えてください。 シート1にa~az列までのデータがあります。 これを全て配列に入れて呼び出す方法を教えてください。 シート1のデータをシート2へ貼り付けたいです。 貼り付ける列は、順序がバラバラでa~l、az、q、aa、af、wの順に シート2のa列から貼り付けたいです。 貼り付けるとa~q列にデータが入るようになります。 1行目は項目なので貼り付ける必要はありません。 データは2行目からとなっています。 シート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