データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
返信が遅くなり申し訳ありません。
試してみます。
ご回答ありがとうございました。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
エクセル初心者です。
以下の一連の操作を自動化したいのですがどうしたらよいでしょうか。
①全選択→BCD,GH,J列以外を全て削除
②全選択→列幅の自動調整
③A列セルの幅を45ptにする
④A1セルを黄色に塗り、太字表記、数式を入れる→=RIGHT(CELL("filename",A1),LEN(CELL("filename",A1))-FIND("]",CELL("filename",A1)))
⑤全てのセルを選んで文字を左揃え
⑥任意の条件付き書式をB~F列に適用
②~⑥は順不同です。
「操作を記録」しようとしましたが失敗しました。(⑤だけはうまくいきました。)
部分的にでも構いません、どなたかご教授いただければ幸いです。
よろしくお願いいたします。
データの分析、グラフ作成、および通信のためのツールを備えた Microsoft 表計算ソフトウェアのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
返信が遅くなり申し訳ありません。
試してみます。
ご回答ありがとうございました。
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 を使用していますが、上記の手順でマクロは記録でき、実行も確認できました。
yi_0926さん、こんにちは。
①全選択→BCD,GH,J列以外を全て削除
全選択については、データが入力されている最終列を取得する方法を知っておくと良いです。
◆最終行・最終列の取得方法(End,CurrentRegion,SpecialCells,UsedRange)|VBA技術解説
後は、ChatGPT は利用されたことはありますでしょうか?
ChatGPT に質問するとコードを教えてくれるので、上手に活用すると良いですよ。
以下、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
> 「操作を記録」
それは簡単な操作程度しか記録されないので、ご自身でマクロを手作業にて作成して下さい。
尚、VBA(マクロ)の公式サポート場所は、海外コミュニティとなっています。
有識者が集まっている所の方が、適切なアドバイスを受けやすいでしょう。
[VBA プログラミングに関する質問]
Stack Overflow には、説明的なタイトル、完全で簡潔な問題ステートメント、問題を再現する
ための十分な詳細の要求などのガイドラインがあることに注意してください。
機能要求または過度に広範な質問は、トピック外と見なされます。
新しいユーザーの場合は、Stack Overflow ヘルプ センター にアクセスして詳細を確認して下さい。
※ 閲覧者・回答者が多い公式サポートサイトをお勧めします。
英語で質問を送信してください。
所謂、くれくれ君には対応してくれないと思います。