機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > VBA

FaceIdの図について



ツールバーのボタンや、メニューのアイコンには、Excelが内部で持っている図を設定できます。



やり方は他のコンテンツで何度も書いていますが、

    Set NewC = NewM.Controls.Add
    With NewC
        .Caption = "保護解除(&U)"
        .OnAction = "UnProtectSheet"
        .BeginGroup = False
        .FaceId = 277
    End With

とか

Application.CommandBars("faceid").Controls(5).FaceId = 351

のように、FaceIdプロパティに番号を指定します。
この番号は、Microsoftから正式なドキュメントとしては公開されておらず、使いたい人は自分で調べるしかありません。この機能が搭載されたExcel 97時代に、1番から3000番までのFaceId画像を調べて一覧画像にしました。当時はNIFTYのライブラリに登録しておいたのですが、いつのまにかNIFTYもパソコン通信をやめてしまい(ry

最近、この一覧を欲しいという方が多いので、あらためて公開することにします。

一覧画像は次のようになっています。



左から「1〜250」のブロック、「251〜500」のブロックと別れていて、3000番まであります。本当は3000番より大きいFaceId番号もあるかもしれませんが、この先はほとんどが空欄です。まぁこれくらいあれば十分でしょう。各ブロックは、番号の小さい順に、左上から右下に向かって並べています。



隣の「251〜500」ブロックは、1行目の左端から右に251、252、253…と並び、右下が500番です。わかりますよね(^^;

画像はExcel 97で抜き出したものです。現在ではデザインが多少変わっている画像もありますが、基本的に画像の番号が変わることはありません。たとえデザインが変わっても「上書き保存」のFaceId番号はずっと3番です。

一覧画像はBMP形式で、サイズは8,064,054byteとデカいです。圧縮していますので解凍してご利用ください。なお、ツールバーのアイコン画像はMicrosoftの著作物です。個人的に使用することはかまいませんが、一般的なプログラムや写真などと同じように、著作権によって保護されていることを留意してください。

下記リンクからダウンロードできます。
FaceId一覧画像のダウンロード「faceid.lzh(164,696byte)」
右クリックして[対象をファイルに保存]を実行してください


ついでに、標準で使用されている画像を、自分で作成したボタンやメニューに適用する方法をお教えしましょう。たとえば[ワークシート分析]ツールバーにある[エラーのトレース]ボタンと同じ画像を使いたいときは、次のようにして[エラーのトレース]ボタンのFaceId番号を調べます。



まず[ワークシート分析]ツールバーの名前(Nameプロパティ)を調べなければなりません。タイトルバーに表示されているからといって、これはCommandBars("ワークシート分析")ではありませんよ。調べるにはいくつかの方法がありますが、最も簡単な方法のひとつは、[ワークシート分析]ツールバーを表示しておいて、現在表示されている全ツールバーの名前を調べるやり方です。次のコードは、現在表示されているメニューとツールバーの名前をイミディエイトウィンドウに出力します。

Sub Sample1()
    Dim c
    For Each c In CommandBars
        If c.Visible Then Debug.Print c.Name
    Next c
End Sub

おそらく「Worksheet Menu Bar」や「Standard」と共に「Formula Auditing」という名前が表示されたことでしょう。これが[ワークシート分析]ツールバーの名前(Nameプロパティ)です。なぜわかるかですって?勘です。違ったら別のを試せばいいだけの話です。わからないときは、恐れずチャレンジしてみましょう。このCommandBars("Formula Auditing")の7番目が[エラーのトレース]ボタンがどうか次のように確認してみます。

Sub Sample2()
    With CommandBars("Formula Auditing").Controls(7)
        MsgBox .TooltipText & vbCrLf & .FaceId
    End With
End Sub



どうやら間違いなさそうです。ついでにFaceId番号は463とわかりました。これを自作ツールバーのボタンに設定してみます。ここでは[ユーザー設定 1]ツールバーにボタンを1つ配置しているとします。



次のコードは、[ユーザー設定 1]ツールバー左端にあるボタンのFaceIdプロパティに463を設定します。

Sub Sample3()
    CommandBars("ユーザー設定 1").Controls(1).FaceId = 463
End Sub



ここでは解説しませんが、同じ方法でメニューに表示されているFaceId番号を調べることも可能です。






このエントリーをはてなブックマークに追加