[[20181003162420]] 『列を選択して別のワークシートに貼り付けたい。VB』(ヤミー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『列を選択して別のワークシートに貼り付けたい。VBA』(ヤミー)

現状、下記のようなVBAを使用して
別のワークシートにデータを貼り付けているのですが、
今後は、メッセージボックスに列番号を1,2,4,5といったイメージで
入力して、任意の列を指定したワークシートに貼り付けたいと考えています。

また、1,2,10,3,6,5といったイメージで列番号も入力した順番で
出力出来ればと思っています。
(指定する列の数は状況によって変化します。)
現状のソースを下記に記載しますので、
変更案を教えて下さい。
よろしくお願いします。

Sub 列抽出()

    'データの列を指定しての抽出と並び替え
    Dim データ範囲 As Range
    Dim 抽出列 As Variant
    Dim i As Long
      Sheets("A").Activate
      Set データ範囲 = ActiveSheet.Range("A1").CurrentRegion
      抽出列 = Array(8, 11, 10, 12)
      Sheets.Add.Name = "B"
      For i = 0 To UBound(抽出列)
      データ範囲.Columns(抽出列(i)).Copy Sheets("B").Range("A1").Offset(0, i)
      Next i

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


InputBoxで文字列入力させて、これをカンマで区切って分割すれば良いでしょう。
 Sub 列抽出()
    'データの列を指定しての抽出と並び替え
    Dim データ範囲 As Range
    Dim 抽出列 As Variant
    Dim i As Long

    Sheets("A").Activate
    Set データ範囲 = ActiveSheet.Range("A1").CurrentRegion
    抽出列 = Split(InputBox("カンマ区切りで列番号を入力"), ",")
    Sheets.Add.Name = "B"
    For i = 0 To UBound(抽出列)
        データ範囲.Columns(Val(抽出列(i))).Copy Sheets("B").Range("A1").Offset(0, i)
    Next i
 End Sub

この方法だと、「抽出列」は文字列配列になるので、Columns指定の際にValで数値化しています。
(???) 2018/10/03(水) 17:24


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.