次の方法で共有

表作成の一連の動作を自動化したい

Anonymous
2024-11-24T07:28:28+00:00

エクセル初心者です。

以下の一連の操作を自動化したいのですがどうしたらよいでしょうか。

①全選択→BCD,GH,J列以外を全て削除

②全選択→列幅の自動調整

③A列セルの幅を45ptにする

④A1セルを黄色に塗り、太字表記、数式を入れる→=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))

⑤全てのセルを選んで文字を左揃え

⑥任意の条件付き書式をB~F列に適用

②~⑥は順不同です。

「操作を記録」しようとしましたが失敗しました。(⑤だけはうまくいきました。)

部分的にでも構いません、どなたかご教授いただければ幸いです。

よろしくお願いいたします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

4 件の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2024-12-16T11:26:10+00:00

    返信が遅くなり申し訳ありません。

    試してみます。

    ご回答ありがとうございました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. motosan 3,230 評価のポイント
    2024-11-25T01:47:03+00:00

    yi_0926 さま

    マクロの記録が失敗したということですが、マクロの記録をしなければ操作できるのでしょうか?

    それとも、全ての操作を実行して記録終了までできたけれども、実行したら「A列セルの幅を45ptにする」ことだけができたということでしょうか?

    マクロの記録で下記のようにしたらどうでしょうか?

    全選択は下の図の左上をクリックします。

    ① の操作

    (1) 全選択する。

    (2) {Ctrl}キーを押しながら BCD,GH,J の列見出しをクリックして選択解除する。

    (3) 右クリックして、[削除]又は[数式と値のクリアー]をクリックする。

    ② の操作

    (1) 全選択する。

    (2) 列見出しのAとBの境界をダブルクリックする。

    ③ の操作

    (1) A列を選択する。

    (2) 列見出しのAとBの境界をドラッグする。

    ④ の操作

    (1) A1セルを選択する。

    (2) [ホーム]タブでセルの書式を変更する。

    (3) 数式を入力する。

    ⑤ の操作

    (1) 全選択する。

    (2) [ホーム]タブでセルの書式を変更する。

    ⑥ の操作

    (1) B~F列を選択する。

    (2) [ホーム]タブで条件付き書式を設定する。

    Excel 2019 を使用していますが、上記の手順でマクロは記録でき、実行も確認できました。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Makapu 92,110 評価のポイント ボランティア モデレーター
    2024-11-24T23:19:38+00:00

    yi_0926さん、こんにちは。

    ①全選択→BCD,GH,J列以外を全て削除

    全選択については、データが入力されている最終列を取得する方法を知っておくと良いです。

    最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)|VBA技術解説

    後は、ChatGPT は利用されたことはありますでしょうか?

    ChatGPT に質問するとコードを教えてくれるので、上手に活用すると良いですよ。

    ChatGPT | OpenAI

    以下、ChtaGPT に質問してコードを作成してもらいました。(検証済み)

    Sub DeleteColumnsInActiveSheet()

    Dim ws As Worksheet 
    
    Dim lastCol As Long 
    
    Dim col As Long 
    
    ' アクティブシートを対象とする 
    
    Set ws = ActiveSheet 
    
    ' 最終列を取得 
    
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column 
    
    ' 列を逆順に削除 
    
    For col = lastCol To 1 Step -1 
    
        Select Case ws.Cells(1, col).Column 
    
            Case 2, 3, 4, 7, 8, 10 ' B, C, D, G, H, J列 
    
                ' 指定した列は削除しない 
    
            Case Else 
    
                ' 指定した列以外を削除 
    
                ws.Columns(col).Delete 
    
        End Select 
    
    Next col 
    
    MsgBox "指定以外の列を削除しました。" 
    

    End Sub

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    ②全選択→列幅の自動調整

    こちらについても同様に、データが入力されている最終列まで選択して列幅を自動調整する方法となります。

    Sub AutoFitColumnsToLastColumn()

    Dim ws As Worksheet
    
    Dim lastCol As Long
    
    ' アクティブシートを対象に設定
    
    Set ws = ActiveSheet
    
    ' 最終列を取得(1行目のデータを基準にする)
    
    lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column
    
    ' データ範囲の列を選択して自動調整
    
    ws.Columns(1).Resize(, lastCol).AutoFit
    
    MsgBox "最終列までの列幅を自動調整しました!"
    

    End Sub

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. simo-k 85,415 評価のポイント ボランティア モデレーター
    2024-11-24T15:13:47+00:00

    > 「操作を記録」

    それは簡単な操作程度しか記録されないので、ご自身でマクロを手作業にて作成して下さい。

    尚、VBA(マクロ)の公式サポート場所は、海外コミュニティとなっています。

    有識者が集まっている所の方が、適切なアドバイスを受けやすいでしょう。

    Stack Overflow(VBA)

      [VBA プログラミングに関する質問]

      Stack Overflow には、説明的なタイトル、完全で簡潔な問題ステートメント、問題を再現する
      ための十分な詳細の要求などのガイドラインがあることに注意してください。
      機能要求または過度に広範な質問は、トピック外と見なされます。
      新しいユーザーの場合は、Stack Overflow ヘルプ センター にアクセスして詳細を確認して下さい。

    ※ 閲覧者・回答者が多い公式サポートサイトをお勧めします。

      英語で質問を送信してください。

      所謂、くれくれ君には対応してくれないと思います。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません