_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ _/ _/ ソフト名:ktMsgBoxAddin Ver3.40 _/ 種 別:フリーソフト _/ 開発環境:Windows10 & Excel 2003SP3/2007SP3/2010SP2/2016 _/ 動作環境:Windows98SE 以降, Excel2000 以降(32/64bitに対応) _/ 著作権者:角田 桂一 < addinbox@h4.dion.ne.jp > _/           < http://addinbox.sakura.ne.jp/index.htm > _/           < 旧サイト:http://www.h3.dion.ne.jp/~sakatsu/index.htm > _/ 免 責 :このマクロを使用したことで発生したいかなる損害に _/      ついても、作者は一切責任を負わないものとします。 _/ 再配布 :内容を改変しないという条件で、再配布は自由です。 _/ 転 載 :無断転載はご遠慮願います。 _/ 履 歴 :2002/ 7/30 Ver1.00 _/ 2002/10/18 Ver2.00 _/ 2002/11/10 Ver3.00 _/ 2002/12/22 Ver3.10 _/ 2003/ 4/ 3 Ver3.11 _/ 2003/ 6/ 1 Ver3.12 _/ 2003/ 6/28 Ver3.13 _/ 2011/ 9/20 Ver3.20 (32/64bitに対応) _/ 2015/ 9/19 Ver3.30 (ktCell2Position を追加) _/ 2018/ 4/16 Ver3.40 (Beep音処理をAPI:MessageBeep に変更) _/ その他 :ウィルスバスター にてウィルスチェックしてあります。 _/ _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/  ※『ktMsgBoxアドイン Ver3.40 』版の [ktMsgBox / ktMsgBoxEX / ktCell2Position]関数   は【kt関数アドイン Ver5.00 】に収録されているものと同じです。   『kt関数アドイン』でも、利用方法・インターフェースは全く同じですので、    参照設定先をそちらへ切り替えた方が便利です。  配布ファイル内にデモブック「ktMsgBox体験.xls 」を入れてあります。  この体験用ブックは単体で動作します(ktMsgBoxAddin.xla の準備は必要なし)。 ---------------------------------------------------------------------------- 【特 徴】   1.インターフェースはVBA関数の[MsgBox]を踏襲しているので、関数名の    [MsgBox]を[ktMsgBox]に変えるだけで、そのまま利用できます。   2.MsgBox のインターフェースに合わせた『ktMsgBox 』と、その機能拡張版    である『ktMsgBoxEX 』の2種類を用意しました。   3.MsgBox と同じ様に「コントロールパネル/画面のプロパティ」設定値を    変えると、ktMsgBoxでの既定フォントにも反映されます。   4.MsgBox では不可能だった、下記の設定がパラメータ指定により可能です。      ・表示位置の指定      ・文字色および背景色の指定      ・使用フォントの指定(MS ゴシック,MS 明朝 etc )      ・フォントサイズの指定      ・太字の指定      ・行単位でのフォント/文字色の指定 ‥‥‥ [ktMsgBoxEX]   5.「チャイム機能」により『お呼び出し』機能として利用できます。   6.アイコンおよび、Wave音をユーザーで用意したものに変更できます。 a) 例えば「会社ロゴ」などを表示する。 b) 「エラーがあります」「処理が終わりました」といった音声を       Waveファイル化して、ktMsgBox関数に利用すれば、音声ガイダンス       付きのメッセージボックスとする。     c) MsgBox標準の4種の他に、オリジナルアイコン13種が[vbCritical]など       のようにパラメータ指定で利用できます。   7.ボタン表記(はい、中止 等)を、”英語”表示(YES , ABORT 等)に変える事もできます。   8.[OK][Cancel]など既定のボタン以外に、自由にボタンキャプションを指定できる    ユーザー定義ボタン(Max4個)を用意しました。これにより、       [全てはい][全ていいえ][はい][いいえ]    というようなボタンセットを使う事もできます。   9.入力欄を設ける事も出来るので、[InputBox関数]の代替にもなります。    InputBox関数では出来なかった以下の機能を持っています。     a) 入力欄の幅を、入力文字数に適した幅で指定できます。     b) 文字の他に、数値と日付の属性指定が可能です。     c) 日本語指定にすれば、自動的に入力欄でのIMEはONになります。 d) パスワード用に、入力文字を"*"で表示する機能もあります。    ktMsgBox/ktMsgBoxEXでの、メッセージのフォント編集と合わせれば、ユーザーに    優しい入力インターフェースとする事が出来ます。   10.背景に画像を指定することができます。この場合に限り、画像がちゃんと表示     されるようにウィンドウサイズを指定することができます。   11.一定時間表示してから、自動的に閉じるという事もできます。   12.HPアドレス(http:// ..... )やメールアドレス(mailto: ..... )を     HyperLinkとして表示させる事もできます。   13.ktMsgBox/ktMsgBoxEXのパラメーターは、その機能故に、数も多く、またバリエー     ションも豊富な為、そのコーディングには手間が掛かるかもしれません。しかし、     付属の体験ツールには、デモンストレーションした内容を、そのままソースコード     に展開する機能がありますので、引数の規則に煩わされる事はありません。 14. -- Ver 3.40 主な変更点 -- (1) MsgBox表示時のBeep音処理を変更しました。      [Windows\Media]ディレクトリ内のサウンドファイルをファイル名で直接指定      していたのを、[コントロールパネル/サウンド]に設定されている音源を指定      するようにしました。 (2) Excel2016で UserFormのWidth/Heightを動的に設定すると 以前のバージョンに比べて狭くなる(7.5p)症状に対処しました。 [ UserForm is shorter and narrower than in earlier versions of Excel ] https://support.microsoft.com/en-us/help/3156159 ---------------------------------------------------------------------------- 【利用方法】   詳細はヘルプ(ktMsgBox_Help.chm)を参照してください。 ktMsgBox を利用するには、先ず、アドイン登録を行ないます。 次に、[ktMsgBox 関数/ktMsgBoxEX 関数]を利用するブックで[ktMsgBoxAddin] への参照設定を付けます(アドイン登録抜きで、参照設定のみでも可)。 (1) 配布ファイルを解凍すると、以下のファイルが展開されます。 a) ktMsgBox_ReadMe.txt (本ファイル) b) ktMsgBoxAddin.xla (アドインブック) c) ktMsgBox_Help.chm (ヘルプファイル) d) ktMsgBox体験.xls (デモ用ブック、単体で動作します) e) AddinBox.gif (デモブックのオープニングメッセージ用画像) ※ ネットからダウンロード したファイルは、OSによりセキュリティ ブロックされています。解凍した上記の各ファイルもセキュリティ ブロックされています。インストールの前に、ファイルのプロパティ ダイアログにて【ブロックの解除】を行なって下さい。 (2) [ktMsgBoxAddin.xla] をアドインフォルダに保存します。 その他のファイルは任意のフォルダに保存してください。 ※ [ktMsgBox_Help.chm] [AddinBox.gif] は [ktMsgBox体験.xls] と同じ フォルダに保存して下さい。 (3) 新規ブックを開き、[ツール→アドイン]でアドイン登録ダイアログを開きます。 一覧に『 ktMsgBoxAddin 』が載っていますので、それにチェックを付けて 【アドイン登録】します。 (4) [ktMsgBox 関数/ktMsgBoxEX 関数]を利用するブックを開く。 (5) VBE画面から、[ツール→参照設定]を選択する。 (6) ダイアログから[ktMsgBoxAddin]にチェックを付けます。 以上で、VBA コードから利用できるようになります。 ※ 引数はウィザードツールで設定できます 体験ブックには、ウィザードツールが付属しています。対話的に実際の表示結果 を確認しながら各種引数オプションを設定できます。設定結果は、ktMsgBox の VBAコードとしてコピーされますので、そのまま VBE のモジュールウィンドウに 貼り付けてプログラムを作成できます。 ================================================================================= 【 アドイン フォルダ 】  「アドインフォルダ」 は2つあります。 どちらかのフォルダにアドインブックを保存すると、『 アドイン 登録ダイアログ 』   の一覧に載ります。  1.OFFICE システム アドインフォルダ ( Library フォルダ ) (a) Excel.exe の直下に位置し、エクセルの 「分析ツールアドイン」 がインストール されているフォルダです。 (b) 下記のマクロでパスを確認できます。 MsgBox Application.LibraryPath (c) Windows Vist 以降 では、UAC ( ユーザーアカウント制御 ) の管理下にあるフォルダ ですので、保存の際には管理者ユーザーで UAC を解除した上で行なう必要があります。 [ ユーザー アカウント制御とは ] http://windows.microsoft.com/ja-JP/windows7/What-is-User-Account-Control (d) OS で共通の場所ですが、マルチインストールの場合、Excel のバージョンごとに フォルダが分かれます。 -- Excel 2003 の 例 -- C:\Program Files\Microsoft Office\Office11\Library -- Excel 2007 の 例 -- C:\Program Files\Microsoft Office\Office12\Library -- Excel 2010 の 例 -- C:\Program Files\Microsoft Office\Office14\Library -- Excel 2013/2016 -- Excel 2013/2016 では、インストール方法によって パス が異なります。 [ Windows インストーラーでインストール ] C:\Program Files\Microsoft Office\Office15\Library [ プリインストール版 , Click-To-Run ] C:\Program Files\Microsoft Office 15\Root\Office15\Library      補:Excel2016では "Office15" の部分が "Office16" になります。 -- Windows ( 64bit ) での注意事項 -- Excel が 32bit/64bit の違いでも パス が異なりますので注意が必要です。 32bit 版 Excel : C:\Program Files (x86)\.... 64bit 版 Excel : C:\Program Files\.... 細かく分かれますが、最初に書いたように下記のマクロで確認できます。 MsgBox Application.LibraryPath (e) セル上で利用できる 「シート関数」 を提供しているアドインでは、このフォルダ に保存する必要があります。  2.ユーザー アドインフォルダ ( Addins フォルダ ) (a) 保存ダイアログでファイルの種類を [アドイン(*.xla or *.xlam)] とした場合に、 既定の保存先として選択されるフォルダです。 (b) 下記のマクロでパスを確認できます。 MsgBox Application.UserLibraryPath (c) Windows Vista 以降 の UAC 管理下からは外れているフォルダですが、『隠し フォルダ』属性ですので、エクスプローラーのフォルダオプションで 「全て のファイルとフォルダを表示する」 にチェックを入れておく必要があります。 (d) マルチインストールの場合でも、Excel の各バージョンで共通の場所ですが、OS に よって場所が異なり、ユーザーごとに分かれます。 -- Windows XP の 例 -- C:\Documents and Settings\USER \Application Data\Microsoft\AddIns --Windows Vista 以降 の 例 -- C:\Users\USER \AppData\Roaming\Microsoft\Addins 【 ktMsgBox アドイン 】 では「シート関数」 を提供していませんので、(2) のユー ザーアドインフォルダで構いません。勿論、(1) のOFFICE システム アドインフォルダ でもOKです。 ================================================================================= 【 変更履歴 】 -- 2018/ 4/16 Ver3.40 -- 1. MsgBox表示時のBeep音処理を変更しました。     [Windows\Media]ディレクトリ内のサウンドファイルをファイル名で直接指定     していたのを、[コントロールパネル/サウンド]に設定されている音源を指定     するようにしました。 2. Excel2016で UserFormのWidth/Heightを動的に設定すると 以前のバージョンに比べて狭くなる(7.5p)症状に対処しました。 -- 2015/ 9/19 Ver3.30 -- 1. ktCell2Position 関数を追加しました。 ktMsgBox or UserForm を「あるセルの上に表示」という場合に、そのセルの スクリーン座標をUserFormで指定する値に変換する関数です。 2. ktCell2Position 関数を利用する為に、ktMsgBox/ktMsgBoxEX 関数の Top/Left 引数にEmptyを指定可能としました。 -- 2011/ 9/20 Ver3.20 -- 1. Windows(64bit)/Excel(64bit)への対応を施しました。 2. ヘルプファイルをCHM 形式ファイルにしました。 -- 2003/ 6/28 Ver3.13 --   1.【Excel2002 】の場合に限り、下記障害が発生した為、これを修正しました。   (障害)    アドイン登録時には問題ないが、その後でエクセルを起動した時に、実行時 エラーが発生し、ktMsgBoxAddinをアドインしている限り、ブック操作が出来 なくなる。   (原因)    Ver3.10から、フォントリストを書式メニューバーのFont-ComboBoxから取得 していますが、ここにアクセスする為にはActiveなWorksheetが存在する必要 があります。エクセル起動時のアドイン読み込み時点では、ActiveなWorksheet が存在しない為、一時的に「アドイン属性解除」を行って対処しています。 Excel97/2000では、これで問題なく取得できますが、Excel2002においては、 「アドイン属性解除」を行なってもFont-ComboBoxにアクセスできない為に実行 時エラーになりました。アドイン登録は、白紙ブックなり、何かブックが開かれ ている状態で行いますから、ActiveなWorksheetが存在し、Font-ComboBoxへの アクセスが可能であり、その為にエラーにはなりません。         (対処)    フォントリストの取得をAPIにより、直接取得するように変更します。    ただし、Excel97では使えない[AddressOf]演算子が必要な為、条件付コンパイル    によって、Excel97では従来通りに書式メニューバーより取得します。 -- 2003/ 6/ 6 Ver3.12 -- 1. 配布ファイルの[ktMsgBox_Note.txt]と[ktMsgBox_Syntax.txt]を HTMLファイルに差し替えました。 機能変更はありませんので、バージョン表記は[Ver3.12]のままです。 -- 2003/ 6/ 1 Ver3.12 -- 1. 配布ファイルに[ktMsgBox_Note.txt]を追加 2. Excel97において、『ktMsgBox Wizard 』での色設定フォームの動作に 不具合が有ったので修正しました。 3. [Buttons]引数における、Excel2000での自動メンバ表示を取り止めました。 (Excel97 において、その指定が不具合を起こした為) -- 2003/ 4/ 3 Ver3.11 --    1.「ktMsgBox体験.xls」で提供している『ktMsgBox Wizard』において、     【色名】用の色設定ダイアログから[Web SafeColor]のマークが付いて     いる色を選択した場合に実行時エラーとなるのを修正しました。    2. WindowsXP で[WindowStyle : XP Mode]の場合に、タイトルバーの高さが      従来モード(Win98/Me/NT/2000)に比べて大きくなっており、その分だけ コマンドボタンの位置が下がって、フォーム下端に接していたのを修正      しました。 -- 2002/12/22 Ver3.10 -- 1.[Wait機能]時に、他のアプリケーション操作が出来なくなる不具合を修正しました。 2.InputBox機能にパスワード指定を追加しました。 3.10種の記号で指定できるフォントの他に、インストールされている     全てのフォントを、直接、フォント名で指定できるようにしました。 4.コード生成ツールから呼び出すパレットフォームで[WebSafeColor]指定     を追加しました。 5.HTMLで使う「色名」をRGB数値に変換する[ktWebColor2Num]関数を追加しました。    6.オリジナルの組み込みアイコンを追加しました。 7.Office2000(not SR1)において、カーソルが表示されない不具合を修正     (これはOffice2000(not SR1)固有のバグに起因するものです) 8.[WaveFile]等でアクセスできないパス内容によっては実行時エラーに     なるのを回避するように修正しました。 -- 2002/11/10 Ver3.00 --    1.ktMsgBoxEX でのフォント属性に[太字]を追加しました。    2.ktMsgBox/ktMsgBoxEXに、以下の機能の追加を行ないました。       a) ユーザー定義ボタン       b) InputBox機能       c) Wait機能       d) 背景画像の指定       e) HyperLinkメッセージ    3.体験ツールを[ktMsgBoxEX]対応にし、ソース生成機能を持たせました。 -- 2002/10/15 Ver2.00 --    1. 既定のフォントを[MS Pゴシック, 10p]固定から、『画面のプロパティ』で      設定してあるフォントに変更する。『画面のプロパティ』を変更すれば、      ktMsgBoxの既定フォントにも反映されます。    2. ktMsgBox に[フォント名およびフォントサイズ]指定を追加    3. 行単位でフォント指定のできる[ktMsgBoxEX]関数を追加 4. PromptColor/BackColorを16進で[&H8000 〜 &HFFFF]と指定すると、Integer型      の認識で負数になる為、カラープロパティ設定時に異常終了していたのを回避      するように修正しました(表示は既定色)。 -- 2002/ 7/30 Ver1.00 --    1. 初版 ================================================================================= 【謝 辞】 x64 環境での動作確認にあたって、「きぬよ&あさみ」さんに御協力頂きました。 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -  「画面のプロパティ」から既定のフォント情報を取得するにあたって   下記HPのコードを利用させて頂きました。    --- 新山(へろぱ)のホームページ ---     http://plaza5.mbn.or.jp/~heropa/    『VB Tips/非クライアントエリアのフォントの情報取得』 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -   インストールされている「フォント一覧」を取得するにあたって   下記HPのコードを利用させて頂きました。    --- The Spreadsheet Page (JWalk & Associates) ---    http://j-walk.com/ss/    [ Getting a List of Installed Fonts ]    http://j-walk.com/ss/excel/tips/vbafunctions.htm =================================================================================