2024年8月16日【ID:0】
メンバー限定
【ExcelVBA】選択セルの列幅を自動調整
セルの列幅に収まらない値が入力されている場合、その値はセルからはみ出してしまいます。
右隣りのセルにも値が入力されている場合は、はみ出した値が見えなくなってしまいます。
その対策として、セル内の値を[折り返して表示する]や、セルの列幅を広げるといった方法がありますが、以下のような予定表などの場合は、見た目が悪くなってしまいます。
そのため今回は、選択したセルの列幅を自動で調整し、他のセルを選択すると同時に列幅が元に戻る仕組みを、VBAを用いて実現していきます。
※こちらで解説したファイルは記事の最後にて配布しています。
今回の仕組みは以下のようになります。
①セルを選択すると同時に、選択しているセルを基準に列幅を自動調整
②他のセルを選択すると同時に、列幅を元に戻す
「①」に関しては、予定表の中が選択された時のみに適用します。
「②」に関しては、曜日の列を基準に列幅を調整することで、元の状態に戻していきます。
特定のシート上のセルを選択すると同時に何かしらの処理を実行するには、シートモジュールを活用します。
シートモジュールを開くには、対象のシートタブの上で右クリックし、[コードの表示]を選択します。
表示された画面がシートモジュールの編集画面になります。
次に、編集画面の上部にあるリストから[Worksheet]を選択します。
選択すると「Worksheet_SelectionChange」というイベントプロシージャが表示されます。
万が一、異なるイベントプロシージャが表示された場合は、先ほどのリストの右隣りのリストから「SelectionChange」を選択してください。
※「Option Explicit」は環境設定によっては表示されません。
このイベントプロシージャは、該当するシートのセルの選択位置が変更されると同時に実行されるものになります。
こちらのSubからEnd Subの間に、以下のコードを記述します。
続きはIT予備メンバー限定です。
メンバー限定コンテンツになります。
IT予備メンバーページと連携することで内容を確認することができます。
メンバーとは
すでにメンバーの方は、
ログインして連携してから、こちらを更新すると閲覧できます。
※連携しても確認ができない場合は、少し時間を置いてご確認ください。
ログイン(新しいタブ)
※[ログイン]→[設定]→[IT予備-連携]で連携できます