エクセル詳細 アドイン

Similar documents
Userコントロール

OTRS10 他社システムOTRS呼出利用手順書

マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:

VB実用Ⅲ⑩ フリーデータベースⅡ

プレポスト【問題】

ICONファイルフォーマット

NotifyIconコントロール

VB.NET解説

各種パスワードについて マイナンバー管理票では 3 種のパスワードを使用します (1) 読み取りパスワード Excel 機能の読み取りパスワードです 任意に設定可能です (2) 管理者パスワード マイナンバー管理表 の管理者のパスワードです 管理者パスワード はパスワードの流出を防ぐ目的で この操作

ファイル操作-インターネットキャッシュ

ExcelVBA

グラフィックス

Microsoft PowerPoint - kakeibo-shiryo1.pptx

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

PowerPoint プレゼンテーション

Microsoft Word - VB.doc

図 1 アドインに登録する メニューバーに [BAYONET] が追加されます 登録 : Excel 2007, 2010, 2013 の場合 1 Excel ブックを開きます Excel2007 の場合 左上の Office マークをクリックします 図 2 Office マーク (Excel 20

プログラミング演習

VB実用⑦ エクセル操作Ⅰ

ファイル操作

チェックを外す 以上で マクロの有効と保護ビューの解除は完了です < 保護ビューの解除について > 保護ビューの解除については 特に設定しなくても EX はインストールできると思いますが 保護ビューのエラーメッセージが出た時に慌てないように念のため解除しておきます セキュリティが心配な方は EX が

ルーレットプログラム

データアダプタ概要

ブロック パニック

Visual Basic 資料 電脳梁山泊烏賊塾 コレクション初期化子 コレクション初期化子 初めに.NET 版の Visual Basic では 其れ迄の Visual Basic 6.0 とは異なり 下記の例の様に変数宣言の構文に 初期値を代入する式が書ける様に成った 其の際 1 の様に単一の値

2.2 文がセルの行の高さの限界値を超えた場合の処理本アドインは 文がセルの行の高さの限界値 (409.5 ポイント ) を超えている場合に 行を追加し自動調整する機能を備えています 文がセルの行の高さの限界値 (409.5 ポイント ) を超えている場合 メッセージボックスを表示し 行挿入処理が

1 はじめに 2016/7 に更新された Windows Update によりアドインファイルのブロックを解除しないと使用できなくなりました このため ファイルのプロパティにてブロックを解除してご使用ください リンク 設定方法はコチラをご覧ください 1.1 アドインの機能このツールは Microso

Word 押印メニューバー使用ガイド

コンピュータ概論

プラグイン

外周部だけ矩形配列

99MAM015B1_J

DAOの利用

Microsoft Word -

Microsoft Word _VBAProg1.docx

PowerPoint プレゼンテーション

ウィンドウ操作 応用

MS Office オートメーション

グラフィックス 目次

PowerPoint プレゼンテーション

1. 入力画面

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

Prog2_15th

64bit環境で32bitコンポーネントの利用

(Microsoft Word - Excel\216\300\217K\212\356\221b1.doc)

Excel2013 マクロ

Base によるアプリケーション開発とサポート 鎌滝雅久 /OpenOffice.org 日本ユーザー会 OSC2007 Hokkaido 2007 年 6 月 30 日土曜日 10:55-11:40 北海道大学学術交流会館第 4 会議室

Section1_入力用テンプレートの作成

10 完了 をクリック 13 このサーバーは認証が必要 をチェックして 設定 をクリック Windows メール Windows Vista に標準のメールソフト Windows メール の設定方法を説明します 1 スタート から 電子メール Windows メール をクリック 11 続いて設定ファ

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

Word 押印メニューバー使用ガイド

Microsoft Word - VBA基礎(1).docx

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

Format text with styles

プロセス間通信

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

HOL14: Microsoft Office Excel 2007 の ブラウザと Web サービス対応

プログラミング演習


図 2 Excel スプレッドシートの世界 のウィンドウ 図 3 Visual Basic の世界 のウィンドウ 図 3 の VBA ウィンドウは 図 2 の Excel ウィンドウのメニューの ツール をクリックし 開か れるプルダウンメニューで マクロ /Visual Basic Editor

作業環境カスタマイズ 機能ガイド(応用編)

構造体

パソコン決裁7 Business 試用版

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション

SharpShooter Reports.WPF 基本的な使い方 Last modified on: November 15, 2012 本ドキュメント内のスクリーンショットは英語表記ですが SharpShooter Reports JP( 日本語版 ) では日本語で表示されます

ListViewコントロール

(Microsoft Word - Word\216\300\217K\212\356\221b1.doc)

WebReportCafe

啓林館データベースソフト KeirinkanDB System インストールマニュアル 啓林館中学校 DB システムのインストール 啓林館中学校 DB システムは 算数 数学 と 理科 は別メディアとなります 1 教科をインストールしている場合 追加で別の教科をインストール可能です ( 教科追加イン

PowerPoint プレゼンテーション

VFD256 サンプルプログラム

ファイル監視

グラフィックス 目次

Design with themes — Part 1: The Basics

インテル(R) Visual Fortran コンパイラ 10.0

Corporate Document

Prog2_12th

939061j

正規表現応用

捺印ツールを使う 捺印ツールをインストールする 1. [ パソコン決裁 6 試用版捺印ツール ] の [ ダウンロード ] ボタンをクリックします 2. [ 実行 ] ボタンをクリックし [SetupDstmp32.exe] ファイルを実行します ご利用のブラウザまたはバージョンにより画面が異なりま

Microsoft Word - VisualC++利用法2.doc

SUD Hintergrund Information

Microsoft Word - 第4章.doc

Microsoft PowerPoint - VBA解説1.ppt [互換モード]

目次 目次 準備いただくもの 準備 SQLServer2008 R2 ExpressEdition のインストール インストールの前に インストール 設定一覧 機

試作ツールは MIT ライセンスによって提供いたします その他 内包された オープンソース ソフトウェアについてはそれぞれのライセンスに従ってご利用ください

CubePDF ユーザーズマニュアル

シヤチハタ デジタルネーム 操作マニュアル

Windows8.1基礎 ファイル管理

ブロック崩し風テニス

<837D836A B816991E5816A2E786C73>

manual2017

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

Microsoft Word - 教科書VBA_第1章2013_.doc

ii Excel Excel IF IF IF VLOOKUP HLOOKUP IF VLOOKUP HLOOKUP ExcelVBA Excel Excel Excel Web p Excel Excel Excel

Design with themes — Part 1: The Basics

BizBrowser SmartDevice Android開発用スタートアップガイド

Transcription:

Microsoft Excel 詳細 アドイン Excel アドインの作成 Excel アドインを作成するには ブックを作成し コード ユーザー設定ツールバー 及び メニュー項目を追加して Excel アドインファイルとして保存する 1. 新しいブックを作成してコードを追加し ユーザー設定ツールバー 又は メニューバーを作成する 2.[ ファイル ] メニューの [ プロパティ ] をクリックする 開いて居るドキュメントのプロパティダイアログボックスで [ ファイルの概要 ] タブをクリックし [ アドイン ] ダイアログボックスに追加するアドインの名前を [ タイトル ] ボックスで指定する 3.Visual Basic Editor で [ デバッグ ] メニューの [< プロジェクト名 > のコンパイル ] をクリックして アドインプロジェクトをコンパイルする 4. 必要に応じて Access Excel PowerPoint 又は Word アドインの VBA プロジェクトにセキュリティを設定する で説明されて居る方法で プロジェクトへのアクセスを制限する 5. アドインブックに.xla 拡張子を付けて Microsoft Excel アドインとして保存する 既定では Excel アドインは C: Windows Application Data Microsoft AddIns サブフォルダに 又は ユーザープロファイルが使用されて居る場合は C: Windows Profiles < ユーザー名 > Application Data Microsoft AddIns サブフォルダに保存される 此のフォルダは [ アドイン ] ダイアログボックスで新しいアドインを追加する際に Excel が検索する場所で有る 但し Excel の起動時に自動的にアドインをロードする場合は 目的のアドインを XLStart フォルダに保存する 此の操作は Excel アドインのロード で説明して居る 重要 :Excel アドインを作成する際は コードが実行されて居る状況に注意して欲しい アドインブックへの参照を取得する場合は ThisWorkbook プロパティを使用するか 目的のブックを名前で参照する 現在 Excel で開いて居るブックを参照するには ActiveWorkbook プロパティを使用するか 其のブックを名前で参照する アドインを保存すれば Excel で再度開いてプロジェクトに変更を加える事が出来る 保存されたアドインには関連ブックは表示されないが Visual Basic Editor を使用して其のプロジェクトを操作出来る Excel ドインとしてアドインブックを保存すると 対応する Workbook オブジェクトの IsAddIn プロパティが True に設定される ThisWorkbook オブジェクトに対する此のプロパティは Visual Basic Editor のプロパティウィンドウで設定出来る False に設定すると ブックが再び表示される ロードされて居る Excel アドインはデバッグ可能で有る アドインをロードすると Visual Basic Editor のプロジェクトエクスプローラに其のプロジェクトが表示される プロジェクトにセキュリティが設定されて居る場合 コードを表示するには適切なパスワードを入力する必要が有る 1

Excel アドインのロード 下記の孰れかの方法で Excel アドインをロードする事が出来る [ ツール ] メニューの [ アドイン ] ダイアログボックスで アドイン名の横のチェックボックスをオンにする C: Windows Application Data Microsoft Excel XLStart サブフォルダにアドインを保存すると Excel を起動した時に自動的にロードされる ユーザープロファイルが使用されて居る場合は C: Windows Profiles < ユーザー名 > Application Data Microsoft Excel XLStart サブフォルダに保存する [ オプション ] ダイアログボックス ([ ツール ] メニュー ) の [ 全般 ] タブで XLStart サブフォルダの場所を変更出来る AddIns コレクションの Add メソッドを使用して目的のアドインを利用可能なアドインのリストに追加し 対応する AddIn オブジェクトの Installed プロパティを True に設定する事に依り プログラムに依って此のアドインがロードされる 例えば 下記のプロシージャは 最初に AddIns コレクションにアドインが有るか何うかを確認し アドインが無い場合は追加する事に依ってアドインをロードする 次に アドインの Installed プロパティを True に設定する 此のプロシージャを呼び出すには 追加するアドインのパス 及び ファイル名を渡す Function Load_XL_AddIn(strFilePath As String) As Boolean ' アドインがコレクションに有るか何うかを確認し ロードする ' 此のプロシージャを呼び出すには アドインのパス 及び ファイル名を渡す Dim addxl Dim straddinname As Excel.AddIn As String On Error Resume Next ' ファイル名のみを返すには ParsePath 関数を呼び出す straddinname = ParsePath(strFilePath, FILE_ONLY) ' アドイン名を取得するためにファイル名から拡張子を削除する straddinname = Left(strAddInName, Len(strAddInName) - 4) ' アドインへの参照を取得する Set addxl = Excel.AddIns(strAddInName) If Err <> 0 Then Err.Clear ' アドインがコレクションにない場合は追加する Set addxl = Excel.AddIns.Add(strFilePath) If Err <> 0 Then ' エラーが発生した場合 プロシージャを終了する Load_XL_AddIn = False GoTo Load_XL_AddIn_End End If End If ' アドインをロードする If Not addxl.installed Then addxl.installed = True Load_XL_AddIn = True Load_XL_AddIn_End: Exit Function End Function 2

コードを自動的に実行 Excel アドインがロードされて居る時にコードを自動的に実行するには 下記の 2 通りの方法が有る アドインプロジェクトの標準モジュールに Auto_Open と謂う名前の Sub プロシージャを作成する 此のプロシージャ内のコードは アドインがロードされて居る時に実行される アドインがアンロードされて居る時にコードを実行するには Auto_Close と謂う名前のプロシージャを追加する アドインブックの Open イベントプロシージャにコードを追加する 此のプロシージャのコードはアドインがロードされて居る場合に Auto_Open プロシージャが動作する前に実行される Excel 起動時にアドインを自動的にロードする場合は アドインを C: Windows Application Data Microsoft Excel XLStart サブフォルダに保存する 亦 ユーザープロファイルが使用されて居る場合は C: Windows Profiles < ユーザー名 > Application Data Microsoft Excel XLStart サブフォルダに保存する必要が有る アドインが此のフォルダに保存されて居ない場合 Excel 起動時にアドインはロードされず Auto_Open と Workbook_Open プロシージャは孰れも実行されない エクセルアドイン開発の実例 EXCEL2010 をでも此の方法は通用する様だが 参照設定は VBE 側で指定する必要が有る様で有る 亦 アドインの VBAProject 名も念の為に変更して置いた方が良さそうで有る テスト時は 本体のブックを xlsm アドインを xlam で作成した アドインの作り方 1.VBA でプログラムする ( 念の為 プロジェクト名を任意の名称に変更して置く ) 2. ブックを保存する時 拡張子を.xla で保存する 3.xla ファイルを VB エディタ画面のメニュー 参照設定 (R) アドイン (I) でサブ画面を開き 参照 (B) ボタンを押してブラウズし 登録する 上記 1~3 の方法に依って xla ファイルの標準モジュールで Public で宣言した変数やプロシージャを 共通の変数や関数として使用出来る様に成るが 此れ丈だと 使い処が余り多く無いので アドインツールを簡単な例で紹介する 3

アドインツールの作成 シート上で右クリックした時に表示されるショートカットメニューに項目を追加して アドインのプログラムを呼び出せる様にする 1. 取り敢えず アドインの機能としては 以下を標準モジュールに記載し 上記の要領でアドインを作成する Public Sub AdinTest() Msgbox "AdinTest" End Sub 2. 更に アドインファイルの ThisWorkbook クラスシートに 以下のイベントプロシージャを記述する ブックオープン時の処理で シート右クリック時のメニューに AdinTest を呼び出す項目を追加する Private Sub Workbook_Open() Dim cmdbr As CommandBar Dim cmdbtn As CommandBarButton ' コマンドバーの取得 Set cmdbr = Application.CommandBars("cell") ' コマンドバー項目の作成 ' 引数 Temporary には必ず True を指定する事 Set cmdbtn = cmdbr.controls.add(msocontrolbutton,,,, True) ' コマンドバー項目に属性を追加 With cmdbtn ' 項目の上に区切り線を付加.BeginGroup = True ' 呼び出すサブプロシージャ名.OnAction = "AdinTest" ' 項目の表示名.Caption = " テスト項目 " End With End Sub 3. アドインを作成すれば 一旦 EXCEL を終了し 再度起動して アドインファイルを EXCEL のメニューからアドインに登録する 4. 成功すると ショートカットメニューに下図の様に項目が表示される ワークシート上のセル上で右クリック 但し 表示が 改ページプレビュー だと表示されないので 標準 にして置く 4

コマンドバー CELL は 2 個存在し 1 つが標準表示 今一つが改ページプレビュー表示用の様で有る 改ページプレビュー表示時にも項目を追加するには 両方のコマンドバーに項目追加を行う必要が有る For Each で CommandBars コレクションのアイテムをチェックして名前が CELL なら項目追加と謂う処理に成る 5. 選択するとメッセージが表示される 注意事項 1. アドインに記述する際 対象のワークブック ワークシート等を 明示的に ActiveWorkbook ActiveSheet ActiveCell と指定する事 然うしないと アドインファイルのブックやシートを対象にしてプログラムが処理される 逆にアドインファイルのブックやシートを指定する場合は ThisWorkbook.Worksheets と記述する 2. コマンドバーコントロールを作成する際 Temporary 引数には必ず True を指定する事 指定すると EXCEL の終了とと共に追加した項目も削除される 指定しないと 削除しない限り残る 3. OnAction プロパティに指定出来るのはサブプロシージャ 引数無し而巳で有る 5

Visual Studio Tools for Office を用いた Excel アドイン作成 Excel のカスタマイズには一般的には VBA が用いられて居るかと思うが 今回は VBA ではなく Visual Studio Tools for Office(VSTO) を用いて Excel をカスタマイズして行こうと思う VSTO を用いた Excel のカスタマイズだが 例えば リボンに独自のメニューを追加して機能を付加すると謂う事が可能に成る Excel 2007 から画面上部にリボンと謂うメニューが用意されて居り 此処に独自の機能を追加する事が出来る様に成った 下記は Excel 2013 のリボンのホームタブの内容で有る 良く使う 貼り付け は大きなアイコンで フォントの設定 はリストボックスでと謂う様に 非常にリッチなインターフェースに成って居る 開発環境 此の記事の開発環境は Windows 8 Visual Studio 2012(C#) Excel 2013 で有る Visual Studio 2012 には Office 2013 アドインを作成する環境はデフォルトではインストールされて居ない 下記記事を参考に開発環境を構築して置いて欲しい Excel 改造 Visual Studio 2013 での Office アドイン開発 準備編 Office アプリケーションの種類 Office を改造する Office アプリケーションには アプリケーションレベルアドインとドキュメントレベルアドインの 2 種類の物が存在する アプリケーションレベルアドインは Excel を例にすると 一旦 Excel にインストールされると 其の Excel で開いたドキュメント総てで機能を実行出来る物で有る ドキュメントレベルアドインは VBA を用いたアプリケーションと似て居て 特定のドキュメントやテンプレートに関連付けられるアプリケーションで有る Office アプリケーションは上記の様にアドインと謂う形で Excel 等にプラグインする形に成る Excel アドインプロジェクトの作成 今回は Excel アドインと謂う Excel 其の物にインストールするタイプのアプリケーションを作成する ファイル > 新規作成 > プロジェクト テンプレート >Visual C#>Office>2010>Excel 2010 アドインを選択 プロジェクトの名前を ExcelAddIn_Hello とする OK ボタンをクリック 6

今回は Excel 2013 で動作を試して居るが Excel 2013 専用のアドインは無く Excel 2010 用のアドインを作成して居る ソリューションエクスプローラを確認すると Excel 其の物と其のコードビハインドが確認する事が出来る 此の関係は WPF 開発等と同じイメージで解り易い構成で有る 亦 其のコードビハインド (ExcelAddIn_Hello.cs) は下記のコードが自動的に生成されて居る 見慣れた C# のコードなので 安心して Excel が改造出来る namespace ExcelAddIn_Hello Public partial class ThisAddIn private void ThisAddIn_Startup(object sender, System.EventArgs e) private void ThisAddIn_Shutdown(object sender, System.EventArgs e) #region VSTO で生成されたコード /// <summary> /// デザイナーのサポートに必要なメソッドです /// 此のメソッドの内容をコードエディターで変更しないでください /// </summary> private void InternalStartup() this.startup += new System.EventHandler(ThisAddIn_Startup); this.shutdown += new System.EventHandler(ThisAddIn_Shutdown); #endregion イベントハンドラの追加 作成されたアドインアプリケーションには Startup イベントと Shutdown イベントにイベントハンドラが設定されて居る 夫々 Excel 起動時 終了時に実行されるイベントのイベントハンドラに成る 此の Startup イベン 7

トハンドラに Application.WorkbookBeforeSave イベントのイベントハンドラを追加する 此のイベントは ワークブックが保存される前 に実行されるイベントで有る private void ThisAddIn_Startup(object sender, System.EventArgs e) this.application.workbookbeforesave += Application_WorkbookBeforeSave; ワークブック保存時処理の実装 先程作成した Application_WorkbookBeforeSave イベントに簡単な処理を記述する ( 下記の処理を実施して居る ) (Excel の保存処理が行われる ) アクティブなワークシートを取得する シート内の C4 に有るセルを取得する セルの値を "Hello World" にする コードは下記に成る : void Application_WorkbookBeforeSave(Excel.Workbook Wb, bool SaveAsUI, ref bool Cancel) Excel.Worksheet activeworksheet = ((Excel.Worksheet)Application.ActiveSheet); if (activeworksheet!= null) Excel.Range namecell = activeworksheet.get_range("c4"); namecell.value2 = "Hello World"; アプリケーションの実行 アプリケーションを Visual Studio で実行すると 空の Excel ファイルが開く 其処で Ctrl+S 等でファイルを保存する事にする ファイル名等を入力して保存を終了すると C4 セルに "Hello World" とテキストが表示される 8