Home Excel(エクセル)マクロ・VBA

企業研修講師派遣のBESTグループ
出張パソコン教室ITスクール
webコンサルティングスクール
パソコンの家庭教師BEST

同じグループの中では1つのオプションボタンが選択できます。

 A.GroupNameプロパティでグループを分ける。

 B.フレームやページなどで分ける。

 

1.プロパティウィンドウを利用する
  OptionButton1を選択して、プロパティウィンドウのCaptionに入力します。

2.コードで設定する
  初期設定で、OptionButton1にチェックが入った状態にしています。
  Private Sub UserForm_Initialize()
    OptionButton1.Caption = “20歳未満”
   OptionButton2.Caption = “20歳以上40歳未満”
    OptionButton3.Caption = “40歳以上60歳未満”
    OptionButton4.Caption = “60歳以上”
    OptionButton1.Value = True
  End Sub
 

1.VBEのメニューバーの[挿入]→ユーザーフォームを実行してユーザーフォームを作成します。

2.ツールボックスのチェックボックスをクリックし、作成したUserForm2の配置する箇所でクリックします。
  または、ドラッグすると任意の大きさで配置できます。

 

[セルの書式設定]ダイアログ-[配置]タブ-[文字の制御]欄に[折り返して全体を表示する]というチェックボックスがあります。

[折り返して全体を表示する]チェックボックスがOnになっていると、セルにたくさんの文字列が入力されているときなどに、文字列がセル内で改行されて表示されるようになります。

セルの幅が広くないときなどにセル内改行されると、非常に見づらい状態になることもあり、自動的に折り返して全体を表示してほしくないという要望が出てくることもうなずけます。

原因は、[折り返して全体を表示する]チェックボックスが、自動的にOnになるようなケースがあるということでしょう。

例えば、改行を含んだ文字列をコピーアンドペーストしたときや、セル内改行するために[Alt]+[Enter]キーを利用したときなどです。このようなときに[折り返して全体を表示する]チェックボックスは自動的にOnになります。

この自動的にOnになる機能を止められればいいのでしょうが、残念ながらこの仕様は、オプション設定などで変えられるようなものではなさそうです。

ただし一つの解決策として、イベントプロシージャを利用して[折り返して全体を表示する]チェックボックスを、強制的にOffにしてしまうという方法が考えられます。

▼セルの値変更後に折り返して全体を表示するをOffにするイベントプロシージャ

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)

 Target.WrapText = False

End Sub

Workbook_SheetChangeイベントプロシージャは、セルの値などが変更されたときに実行されるイベントプロシージャです。

勝手に[折り返して全体を表示する]チェックボックスがOnにならないようにしたいExcelファイルに、このWorkbook_SheetChangeイベントプロシージャを作成しておけば、勝手に折り返して全体を表示されないようになります。

やってることは、更新されたセルのWrapTextプロパティをFalseにすることだけです。

[Alt]+[Enter]キーが押されると、WrapTextプロパティがTrueになり、折り返して全体を表示するようになってしまうわけですから、イベントプロシージャで強制的にFalseにしてしまうという考えです。

▼サンプルファイル(003575.xls 42KByte)ダウンロード

サンプルファイルには上記のイベントプロシージャが作成してあります。

文字を入力して、[Alt]+[Enter]でセル内改行をしても、[折り返して全体を表示する]チェックボックスがOnにならないことなどをご確認ください。
 

VBA(Visual Basic for Applications)を使いこなしているレベルの方なら、他にも簡単にハイパーリンクを一括で削除する方法がありますので、ご紹介しておきます。

VBE(Visual Basic Editor)の[イミディエイト]ウィンドウからコードを実行することで、ハイパーリンクの一括削除ができます。

▼操作手順:アクティブシートのハイパーリンクを一括削除する
[Alt]キー+[F11]キーを押してVBEを起動
 ↓
[Ctrl]キー+[G]キーを押して[イミディエイト]ウィンドウを表示
 ↓
[イミディエイト]ウィンドウに
 「activesheet.hyperlinks.delete」と入力して[Enter]キーを押す

「activesheet.hyperlinks.delete」
というコードだけで、アクティブシートのハイパーリンクがすべて削除されます。