ユーザーフォームのオブジェクトの名前を「UserForm1」から変更する方法(Excel VBA)

【本日のミッション】

ユーザーフォームの初期名「Userform1」を任意の名前に変更せよ。

ミッションの概要

新規でユーザーフォームを作ったら、オブジェクト名が「UserForm1」って名前になってしまった。

自分で編集するうえで分かりやすい名前に変更しましょう、というのが今回のミッションです。

「UserForm1」オブジェクトの名前を変更しよう

ユーザーフォームのオブジェクト名を変更するのはプロパティウィンドウになります。
プロパティウィンドウが表示されていない場合は[F4]キーをクリックして表示させてください。

プロパティウィンドウの一番上にオブジェクト名があります。

オブジェクト名の右側にある「UserForm1」を任意の名前に変更します。
今回は「frmMain」という名前に変更しました。

オブジェクト名を変更すると、プロジェクト画面のフォーム名も変更されます。
しかし、ユーザーフォームの上のタイトルは変更されません。
タイトルバーの名前の変更はこちら→ユーザーフォームの上のバー(タイトルバー)の名前を「UserForm1」から変更する(Excel VBA)

オブジェクト名 命名規則

オブジェクトの名前は、自分がコード設計するときに分かりやすものにしますが、命名規則があるので注意が必要です。

  • 英数字(全角で入力すると自動で半角に変換されます)、漢字、ひらがな、カナカナ、_(アンダーバー)のみ使用できる。
  • 名前の先頭に数字・_(アンダーバー)が使えない。
  • 予約語と同じ名前は使えない。
    予約語を使うと「オブジェクト名が不正です」というエラーメッセージが表示されます。

    予約語:ステートメント、演算子、キーワード等、VBAで既に使われている言葉のことです。
    詳しくは下記サイトをご参照ください。
    Microsoftの公式サイト 予約済みのキーワード
  • スペース・記号(「.」「&」「@」「$」「#」「!」など)は使えない。
  • 最大半角255文字まで。

命名規則の他に、命名方法の話をすると色々あるのですが、ここでは割愛させていただきます。

要注意:日本語のモジュール名やフォーム名を持つ Office ファイルを開くときにエラーが発生する

実は以前、フォームの名前を日本語にしていて痛い目にあったことがあるんです。
エクセルファイルが開かなくなる、という恐怖です。
ご興味のある方は、下記をご覧ください。

Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?
Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?続報1
Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?続報2

Excelのバージョンによっては問題ない事象です。

でも、あの時の恐怖が・・・なので、フォームの名前を日本語する時は、名前の末尾を半角英数字にするようにしています。

【参考】

VBA(マクロ)作成の前、リボンに開発タブを表示させる(Excel VBA)
ユーザーフォームの作成方法 準備(Excel VBA)
ユーザーフォームのオブジェクトの名前を「UserForm1」から変更する方法(Excel VBA)
ユーザーフォームの上のバー(タイトルバー)の名前を「UserForm1」から変更する(Excel VBA)
ユーザーフォームのオブジェクトウィンドウとコードウィンドウを表示切替させる方法(Excel VBA)
「オブジェクト名が不正です」を出さないようにユーザーフォームオブジェクト名を命名規則に従って変更(Excel VBA)
エクセルファイルが開いた時にユーザーフォームを表示させる方法(Excel VBA)
エクセル フォームのラベルのテキストを縦書きにする方法(Excel VBA)
AddItemメソッドを使ってコンボボックスの値リストを設定する(Excel VBA)
RowSourceプロパティを使ってセル範囲とコンボボックスの値リストをリンク設定させる(Excel VBA)
RowSourceプロパティでリンク設定したコンボボックス値リストにデータを追加・削除する(Excel VBA)
コンボボックスにListプロパティを使って 配列に格納したセルデータを値リストとして設定する(Excel VBA)
既存のコンボボックスの値リストにAddItemメソッドでデータを追加する(Excel VBA)
既存のコンボボックスの値リストのデータを、Clearメソッドで全て削除して初期化する(Excel VBA)
既存のコンボボックスの値リストの項目を1件 RemoveItemメソッドで削除する(Excel VBA)
選択する項目の文字数に応じてコンボボックスのサイズ(幅・高さ)を自動変更する(Excel VBA)
コンボボックス 値リストに設定した項目以外は入力できないようにする(Excel VBA)
コンボボックス 値リストに設定した項目以外も入力できるようにする(Excel VBA)
コンボボックス プルダウンを開いた時の値リストの最大表示件数を指定する(Excel VBA)
コンボボックス ドロップダウンのポチってするところ(ドロップボタンスタイル)を▼から変更する(Excel VBA)
コンボボックス リストの中から初期値を設定するListIndexプロパティ(Excel VBA)
コンボボックスの値リストに設定された項目の件数を取得する(Excel VBA)
RowSourceプロパティを使って、複数列のセル範囲とコンボボックスの値リストをリンク設定(Excel VBA)

■■■スポンサーリンク■■■