見出し画像

表の列を左に移動するChatGPTと一緒に作ったよ

この説明は、ChatGPTで作成しています。


このプログラムは、Excelの表内の列を左に1列ずつ移動し、左端にあった列を右端に移動する仕組みです。普段手作業で行うような列の入れ替えを、VBAを使って自動化します。


プログラムの流れ

  1. アクティブシートの表データを確認
    プログラムは現在アクティブなシートを対象にします。そして、データのある最終行と最終列を調べて、表の範囲を特定します。

  2. 表データを配列に格納
    表全体を配列に変換します。この処理を行うことで、データを高速に操作できます。

  3. 左端の列を一時的に保存
    左端の列を別の配列にコピーします。これを後で右端に移動するためです。

  4. 列を1つ左に移動
    表全体のデータを操作して、各列を1列ずつ左に移動させます。

  5. 左端の列を右端に設定
    一時的に保存していたデータを右端の列に移動します。

  6. 更新した配列をシートに反映
    操作が終わった配列を再びシートに戻します。


コードの動き

  1. 最終行と最終列の取得
    表がどこまで続いているかを計算し、その範囲をプログラムが認識します。

  2. 配列の操作
    表のデータを配列に取り込むことで、1行ずつデータを扱いやすくします。次に、左端の列を一時的に保存し、他の列を1つ左に動かします。

  3. 左端を右端に移動
    最後に、左端のデータを右端に再配置します。

  4. 変更結果の反映
    配列に加えた変更を表に反映して、処理完了です。


このプログラムが役立つシチュエーション

  • 日付やデータの順序を変更したいとき

  • 特定の列を動かしてデータの並びを調整したいとき

  • 毎日同じ操作を繰り返す作業を自動化したいとき


リンク

Sub 表の列を左に移動するChatGPTと一緒に作ったよ()
    Application.ScreenUpdating = False
    Dim ws As Worksheet
    Dim lastRow As Long, lastCol As Long
    Dim table As Range
    Dim tableData As Variant
    Dim tempColumn As Variant
    Dim i As Long

    ' アクティブシートを設定
    Set ws = ActiveSheet

    ' 最終行と最終列を取得
    lastRow = ws.Cells(ws.Rows.count, 1).End(xlUp).row
    lastCol = ws.Cells(1, ws.Columns.count).End(xlToLeft).Column

    ' テーブル範囲を設定(見出しを含む)
    Set table = ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastCol))

    ' テーブルを配列に格納
    tableData = table.Value

    ' 一番左の列を一時配列に保存
    ReDim tempColumn(1 To UBound(tableData, 1))
    For i = LBound(tableData, 1) To UBound(tableData, 1)
        tempColumn(i) = tableData(i, 1)
    Next i

    ' 配列の列を1列ずつ左に移動
    For i = LBound(tableData, 1) To UBound(tableData, 1)
        Dim j As Long
        For j = 1 To UBound(tableData, 2) - 1
            tableData(i, j) = tableData(i, j + 1)
        Next j
        ' 保存していた一番左の列を最後の列に移動
        tableData(i, UBound(tableData, 2)) = tempColumn(i)
    Next i

    ' 配列を再びシートに反映
    table.Value = tableData

    Application.ScreenUpdating = True
End Sub

関連キーワード

#excel #できること #vba #列移動 #Excel自動化 #プログラミング初心者 #シート操作 #エクセルVBA #配列操作 #セル操作 #テーブル操作 #時短術 #業務効率化 #Excelテクニック #初心者向け #職場で使える #Excel初心者 #カラム移動 #コード解説 #VBA学習



Moving Table Columns to the Left with VBA

This explanation is created by ChatGPT.

This program shifts columns of a table in an Excel sheet one step to the left, moving the first column to the far right. The steps include:

  1. Detecting the table range.

  2. Storing the table in an array for fast processing.

  3. Temporarily saving the first column data.

  4. Shifting remaining columns to the left.

  5. Moving the first column to the last position.

  6. Updating the Excel sheet with the modified data.


Why this program is helpful

  • Adjusts column order effortlessly.

  • Automates repetitive data arrangement tasks.

  • Simplifies reordering for better data analysis.


Links


Related Keywords

#excel #vba #columnshift #tableautomation #spreadsheetmagic #worksmarternotharder #VBAhowto #ExcelProgramming #ExcelTips #VBAarrays #productivitytools #codingbasics #macrofun #learningexcel #Excelpro #datarearrangement #automatedworkflows #columnswap #VBAforBeginners #excelcodeexplained

いいなと思ったら応援しよう!