MS Office オートメーション

Similar documents
VB実用Ⅲ② オフィスオートメーションⅠ

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

DAOの利用

ファイル操作

VB.NET解説

mySQLの利用

正規表現応用

PowerPoint プレゼンテーション

データアダプタ概要

ICONファイルフォーマット

グラフィックス

VB実用⑦ エクセル操作Ⅰ

ExcelVBA

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

構造体

エクセル詳細 アドイン

Microsoft Word - 206MSAccess2010

NotifyIconコントロール

ご存知ですか? データ転送

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

ルーレットプログラム

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

ファイル操作-バイナリファイル

PowerPoint プレゼンテーション

データベースプログラミング

Userコントロール

sinfI2005_VBA.doc

VB実用⑱ 印刷Ⅷ(Accessに依る印刷)

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

ファイル監視

プロセス間通信

データベースアクセス

プレポスト【問題】

Microsoft Office操作(EXCEL)

Access のようなデータベースはないの? 答えは あります OOo は下記の なんちゃって Access の機能を持っています テーブルの作成とデータ操作が可能 クエリでデータの抽出 関連付けが可能 入力フロントエンドになるフォームの作成が可能 宛名ラベル レポートなどの印刷機能 データソース画

ブロック崩し風テニス

農業・農村基盤図の大字小字コードXML作成 説明書

PowerPoint プレゼンテーション

VB.NET解説

第 12 講データ管理 1 2 / 14 ページ 12-1 データベースソフトの概要 データベースとは集められた様々なデータをテーマや目的に沿って分類 整理したものです データベースソフトでは データベースを作成し その管理を行います 何種類ものファイルや帳簿で管理していたデータをコンピュータ上で互

情報資源組織演習B:

PYTHON 資料 電脳梁山泊烏賊塾 PYTHON 入門 関数とメソッド 関数とメソッド Python には関数 (function) とメソッド (method) が有る モジュール内に def で定義されて居る物が関数 クラス内に def で定義されて居る物がメソッドに成る ( 正確にはクラスが


シーケンシャルファイルの操作

万年暦プログラム

Microsoft Word - Outlook_manual doc

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

相性占いプログラム

スライド 0

untitled

目次 更新履歴... 1 はじめに... 3 レコードセット?... 3 準備... 5 SQL でデータを取得する... 6 データのループ処理... 7 列の値を取得する... 7 対象行を変更する (MoveFirst, MoveNext, MovePrevious, MoveLast)...

グラフィックス 目次

ListViewコントロール

印刷

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

Android Layout SDK プログラミング マニュアル

ハッシュテーブル

コンピュータ概論

1セル範囲 A13:E196 を選択し メニューの データ - 並べ替え をクリック 並べ替え ダイアログボックスで 最優先されるキー から 年代 を選択し OK をクリック ( セル範囲 A13:E196 のデータが 年代 で並び替えられたことを確認する ) 2セル範囲 A13:E196 を選択し

問題 1 次の文章は Access データベース およびデータベースの概要について述べたものである にあてはまる適切なものを解答群 { } より選び その記号で答えよ 設問 1. Microsoft Access 2007 データベースのテーブルでは 表す としてデータを { ア. レコードを列 フ

大阪ガス株式会社 情報通信部 御中

intra-mart EX申請システム version.7.2 事前チェック


AccessVBA−‹ŠpŁÒ-flO“Z

C 資料 電脳梁山泊烏賊塾 ファイルの入出力 C++ のバイナリファイル入出力 初めに 此処では Visual Studio 2017 を起動し 新しいプロジェクトで Visual C++ の Windows デスクトップを選択し Windows コンソールアプリケーションを作成する

回文作成支援プログラム

( 目次 ) 1. はじめに 開発環境の準備 仮想ディレクトリーの作成 ASP.NET のWeb アプリケーション開発環境準備 データベースの作成 データベースの追加 テーブルの作成

2 / 25 複数ソフトの組み合わせ テキストファイルを Excel で開く テキスト形式 (.txt) で保存したファイルを Excel で利用しましょう 第 14 講で保存した west.txt を Excel で開きます 1. Excel を起動します 2. [Office ボタ

Microsoft Word - 2._5)OLAPツール『Query & Analysis』の「データ転送」機能.docx

ER/Studio Data Architect 2016 の新機能

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

PowerPoint プレゼンテーション

TestDesign for Web

ブロック パニック

最初に VBA が使用できるように マクロ と呼ばれるエクセル上のアプリ ( のようなもの ) を準備します Excel メニューの ファイル オプション を選択 表示される Excel のオプション から リボンのユーザー設定 を選択 メインタブ 内の 開発 にチェックを付けて OK をクリック

Microsoft Word - HowToConvertIdwToDwg.doc

ADO.NETのアーキテクチャ

内容 Visual Studio サーバーエクスプローラで学ぶ SQL とデータベース操作... 1 サーバーエクスプローラ... 4 データ接続... 4 データベース操作のサブメニューコンテキスト... 5 データベースのプロパティ... 6 SQL Server... 6 Microsoft

外周部だけ矩形配列

Transcription:

MS Office オートメーション テキストの CSV 形式での保存 :TransferText( サンプル :TransText) Access のデータを 他のアプリケーションで汎用に使える CSV 形式や Excel で使う時に便利な Excel 形式へのコンバート等に付いて 其の方法を紹介する テキストを CSV 形式で保存すると謂うのは Visual Basic でコーディングしても大した物ではないが Access を使用すると 態々コーディングする必要も無く成る 此れには TransferText メソッドを使用する 下記に此のメソッドの概要を示す DoCmd.TransferText [ 変換種類 ][, 定義名 ], テーブル名, ファイル名 [, フィールド名有無 ][,HTML テーブル名 ] 指定項目変換種類定義名テーブル名ファイル名フィールド名有無 HTML テーブル名 内容下記の孰れかの組み込み定数を指定 acexportdelim : 区切記号付テキストファイルのエクスポート acexportfixed : 固定長テキストファイルのエクスポート acexporthtml :HTML ファイルのエクスポート acexportmerge : acimportdelim : 区切記号付テキストファイルのインポート ( 既定値 ) acimportfixed : 固定長テキストファイルのインポート acimporthtml :HTML ファイルのインポート aclinkdelim : 区切記号付テキストファイルのリンク aclinkfixed : 固定長テキストファイルのリンク aclinkhtml :HTML ファイルのリンク作成してカレントデータベースに格納したインポート又はエクスポート定義の名前固定長テキストファイルの場合 此の引数を指定するか 又は インポート エクスポート リンクするテキストファイルと同じフォルダに有る schema.ini ファイルを使用する必要が有る 区切記号付テキストファイルでは 此の引数に定義名を指定しなくても インポート エクスポート リンクが出来る テキストデータとのインポート エクスポート リンクを行なう Access テーブルの名前 又は 結果をテキストファイルにエクスポートする Access の選択クエリー名インポート エクスポート リンクを行なうテキストファイルのフルパス名インポート エクスポート リンク時に, テキストファイルの最初の行をフィールド名とするか何うかを指定 ( 既定値は False) インポート リンクする HTML ファイル内のテーブルかリストの名前 ( 此の引数を指定しないと HTML ファイルの先頭のテーブルかリストがインポート リンクされる ) CSV 形式のファイルは インポート エクスポート 又は リンク ( 従来のアタッチに相当 ) させる事が出来る 実は, 此の後で紹介する其他のファイル形式との遣り取りも 大抵は此の 3 つの形式を選択する事が出来る 此の作業は 下記の孰れかと謂う事に成る 1. 元テーブルとコンバート先のファイル形式を指定してエクスポート 2. コンバート元のファイル形式とファイルを指定してインポートし 適当なテーブルを作成 3. 外部のファイル形式とファイルを指定し 内部のテーブル名を指定してリンク エキスポートで ファイル名で指定したファイルが無いと 自動的に新規作成される -1-

ワークシート形式 RTF 形式 HTML 形式 他のデータベース形式共 基本的には 同じ遣り方と謂う事に成る 其処で 此処では 大枠のプログラムから CSV 形式の物而巳のコーディング例を示す Option Explicit ' Microsoft Access x.x Object Library の参照設定を行う (x.x はバージョン番号 ) Private Ac Private Sd As Access.Application As String ' フォームが読み込まれた時の処理 Private Sub Form_Load( ) ' 起動パスの設定 Sd = App.Path: If Not Right$( Sd, 1 ) = " " Then Sd = Sd & " " ' Access オブジェクトのインスタンス生成 Set Ac = New Access.Application ' Access ファイルのオープン Ac.OpenCurrentDatabase ( Sd & "transfer.mdb" ) ' フォームが閉じられ様と仕た時の処理 Private Sub Form_QueryUnload( Cancel As Integer, UnloadMode As Integer ) ' Access の終了 Ac.Quit ' Access の解放 Set Ac = Nothing ' コマンドボタン ( 読込 ) がクリックされた時の処理 Private Sub cmdloadcsv_click( ) ' CSV ファイル名の設定 F = Sd & "import.csv" テーブル インポート が新規作成され 其処に import.csv の内容が書き込まれる 猶 先頭行は フィールド名と解釈する ' CSV ファイルのインポート Ac.DoCmd.TransferText acimportdelim,, " インポート ", F, True MsgBox "CSV ファイルのインポートが完了しました ", vbokonly, " 通知 " ' コマンドボタン ( 書込 ) がクリックされた時の処理 Private Sub cmdsavecsv_click( ) ' CSV ファイル名の設定 F = Sd & "export.csv" テーブル エクスポート の内容が export.csv にカンマ区切で書き込まれる 猶 先頭行に フィールド名は書き込まない ' CSV ファイルのエクスポート Ac.DoCmd.TransferText acexportdelim,, " エクスポート ", F, False MsgBox "CSV ファイルへエクスポートが完了しました ", vbokonly, " 通知 " -2-

ワークシート変換 :TransferSpreadsheet( サンプル :TransXls) ワークシート変換は Access のデータを Excel や Lotus 1-2-3 形式のファイルと変換する物で有る 此れも インポート エクスポート リンクの孰れもが可能で有る 但し 実際にはアプリケーションのバージョンに依り サポートが異なるので注意を要する 下記に ワークシート変換を行う TransferSpreadsheet メソッドの概要を示す Excel 及び Lotus のワークシートのデータをインポート エクスポート リンクを行う事が出来る 但し Lotus ワークシートは読み取り専用で有る DoCmd.TransferSpreadsheet [ 変換種類 ][, シート種類 ], テーブル名, ファイル名 [, フィールド名有無 ][, 範囲 ] 指定項目変換種類シート種類テーブル名ファイル名フィールド名有無範囲 内容下記の孰れかの組み込み定数を指定 acimport : インポート ( 既定値 ) acexport : エクスポート aclink : リンク下記の孰れかの数値を指定 0:acSpreadsheetTypeExcel3 6:acSpreadsheetTypeExcel4 5:acSpreadsheetTypeExcel5 5:acSpreadsheetTypeExcel7 8:acSpreadsheetTypeExcel8( 既定値 ) 8:acSpreadsheetTypeExcel9 2:acSpreadsheetTypeLotusWK1 3:acSpreadsheetTypeLotusWK3 7:acSpreadsheetTypeLotusWK4 4:acSpreadsheetTypeLotusWJ2( 日本語バージョン而巳 ) ワークシートとのインポート エクスポート リンクを行なう Access テーブルの名前 又は 結果をワークシートにエクスポートする Access の選択クエリー名猶 変換種類にインポートを指定した場合 指定したテーブルが既に存在する時にはワークシートのデータは 此のテーブルに追加され 存在しない時は 新しいテーブルが作成されて 指定したワークシートのデータがインポートされる インポート エクスポート リンクを行なうワークシートファイルのフルパス名インポート エクスポート リンク時に, ワークシートファイルの最初の行をフィールド名とするか何うかを指定 ( 既定値は False) 但し Access テーブル 又は 選択クエリのデータをワークシートにエクスポートする場合は 此の引数に何を指定したかに拘らず フィールド名がワークシートの最初の行に挿入される セルの有効範囲 又は ワークシートの範囲名を文字列式で指定但し 此の引数はインポートする場合に丈指定し ワークシートにエクスポートする場合には 此の引数を指定しない 範囲を入力すると エクスポートは失敗に成る 猶 インポートする場合でも ワークシート全体をインポートする場合は 此の引数を指定しない 構文の途中に有る引数を省略する場合 引数のカンマは省略出来ない 後に続く引数を指定しない場合は 最後に指定した引数の後ろにはカンマは付けない エキスポートで ファイル名で指定したファイルが無いと エラーが発生する -3-

此処では Excel との変換を行うコーディング例を示す 猶 下記のコードで CSV 形式の場合と異なるのは 実質的には 実際にインポートやエクスポートを行う 2 行丈で有る Option Explicit ' Microsoft Access x.x Object Library の参照設定を行う (x.x はバージョン番号 ) Private Ac Private Sd As Access.Application As String ' フォームが読み込まれた時の処理 Private Sub Form_Load( ) ' 起動パスの設定 Sd = App.Path: If Not Right$( Sd, 1 ) = " " Then Sd = Sd & " " ' Access オブジェクトのインスタンス生成 Set Ac = New Access.Application ' Access ファイルのオープン Ac.OpenCurrentDatabase ( Sd & "transfer.mdb" ) ' フォームが閉じられ様と仕た時の処理 Private Sub Form_QueryUnload( Cancel As Integer, UnloadMode As Integer ) ' Access の終了 Ac.Quit ' Access の解放 Set Ac = Nothing ' コマンドボタン ( 読込 ) がクリックされた時の処理 Private Sub cmdloadxls_click( ) ' Excel ファイル名の設定 F = Sd & "import.xls" テーブル インポート が新規作成され 其処に import.xls の内容が書き込まれる 猶 先頭行は フィールド名と解釈する ' Excel ファイルのインポート Ac.DoCmd.TransferSpreadsheet acimport, acspreadsheettypeexcel9, " インポート ", F, True MsgBox "XLS ファイルのインポートが完了しました ", vbokonly, " 通知 " ' コマンドボタン ( 書込 ) がクリックされた時の処理 Private Sub cmdsavexls_click( ) ' Excel ファイル名の設定 F = Sd & "export.xls" テーブル エクスポート の内 容が export.xls の新規シート に書き込まれる 猶 先頭行に は 常に フィールド名が書き込まれる ' Excel ファイルへのエクスポート Ac.DoCmd.TransferSpreadsheet acexport, acspreadsheettypeexcel9, " エクスポート ", F MsgBox "XLS ファイルへエクスポートが完了しました ", vbokonly, " 通知 " -4-

RTF 形式や Excel 形式でのファイル作成 :OutputTo( サンプル :TransRtf) OutputTo メソッドでは RTF 形式や Excel 形式やテキスト形式でのファイル作成が可能で有る 但しインポートは 出来ない 下記に OutputTo メソッドの概要を示す DoCmd.OutputTo オブジェクト種類 [, オブジェクト名 ][, 出力ファイル形式 ][, 出力ファイル ][, 自動起動 ][, テンプレートファイル ] 指定項目オブジェクト種類オブジェクト名出力ファイル形式出力ファイル自動起動テンプレートファイル 内容下記の孰れかの組み込み定数を指定 acoutputform : フォーム acoutputmodule : モジュール acoutputquery : クエリ acoutputreport : レポート acoutputtable : テーブル ( 既定値 ) オブジェクトの種類の引数で選択した種類のオブジェクトの有効名を文字列式で指定下記の孰れかの組み込み定数を指定 acformatxls acformatrtf acformattxt acformathtml acformatasp acformatdap acformatiis acformatsnp オブジェクトの出力先のファイルの名前をフルパスで指定猶 此の引数を指定しない場合 出力ファイル名を入力する為のプロンプトが表示される Windows 対応のアプリケーションを起動して 出力ファイル形式の引数で指定したファイルをロードする時には True を設定猶 XLS ファイルの場合は Excel TXT ファイルの場合はメモ帳 RTF ファイルの場合は Word で HTML ファイルの場合は 既定のインターネットブラウザで Access のオブジェクトの出力ファイルを開く HTML ファイル HTX ファイル ASP ファイルのテンプレートと仕て使用するファイルを指定猶 此処で謂う処のテンプレートファイルとは HTML タグを含むファイルの事で有る OutputTo メソッドでは 自動起動の引数を True に設定すると ファイルを出力した後で 対応するアプリケーションを自動的に実行する事が出来る 猶 HTML 形式では 不必要に Microsoft の独自タグが記述され ファイルサイズも大きく成る為 此の儘 出力ファイルをサーバにアップロードして使用する様な事は避けた方が良い 飽く迄もアウトライン作成用に使用し 後で 不要なタグを手作業で取り除く事が望ましい 出力ファイルで指定したファイルが無いと 自動的に新規作成される (XLS の場合も ) -5-

下記に Excel 形式と HTML 形式と RTF 形式で出力するサンプルコードを示す Option Explicit ' Microsoft Access x.x Object Library の参照設定を行う (x.x はバージョン番号 ) Private Ac Private Sd As Access.Application As String ' フォームが読み込まれた時の処理 Private Sub Form_Load( ) ' 起動パスの設定 Sd = App.Path: If Not Right$( Sd, 1 ) = " " Then Sd = Sd & " " ' Access オブジェクトのインスタンス生成 Set Ac = New Access.Application ' Access ファイルのオープン Ac.OpenCurrentDatabase ( Sd & "transfer.mdb" ) ' フォームが閉じられ様と仕た時の処理 Private Sub Form_QueryUnload( Cancel As Integer, UnloadMode As Integer ) ' Access の終了 Ac.Quit ' Access の解放 Set Ac = Nothing ' コマンドボタン (HTML ファイルへの書込 ) がクリックされた時の処理 Private Sub cmdsavehtml_click( ) ' HTML ファイル名の設定 F = Sd & "import.html" ' HTML ファイルの出力 Ac.DoCmd.OutputTo acoutputtable, " エクスポート ", acformathtml, F, True ' コマンドボタン (RTF ファイルへの書込 ) がクリックされた時の処理 Private Sub cmdsavertf_click( ) ' RTF ファイル名の設定 F = Sd & "export.rtf" ' RTF ファイルの出力 Ac.DoCmd.OutputTo acoutputtable, " エクスポート ", acformatrtf, F, True ' コマンドボタン (Excel ファイルへの書込 ) がクリックされた時の処理 Private Sub cmdsavexls_click( ) ' Excel ファイル名の設定 F = Sd & "export.xls" ' Excel ファイルの出力 Ac.DoCmd.OutputTo acoutputtable, " エクスポート ", acformatxls, F, True -6-

データベース変換 :TransferDatabase クライアント / サーバー型 RDBMS にも応用可能なデータベース変換機能だ.Access ではさまざまな種類のデータベースファイルとのコンバートが可能であるが, これをすべて Visual Basic からも呼び出して使うことができる. しかも,ODBC を使って Oracle や SQL Server などの RDBMS とのインポート, エクスポート, そしてリンクも可能である. こうなってくると,SQL*Plus や ISQL などを使うのが馬鹿馬鹿しくなってくる. この機能を実現するのが,TransferDatabase メソッドだ. 次に, 概要を示す DoCmd.TransferDatabase [transfertype], databasetype, databasename [, objecttype], source, destination [, structureonly] [, saveloginid] 指定項目 transfertype databasetype databasename objecttype source destination structureonly saveloginid 内容下記の孰れかの組み込み定数を指定 acimport : インポート acexport : エクスポート aclink : リンクデータのインポート エクスポート リンクが可能なデータベースの種類の有効名を文字列式で指定データのインポート エクスポート リンクに使用するデータベースの名前をフルパスで指定下記の孰れかの組み込み定数を指定 actable : テーブル acquery : クエリ acform : フォーム acreport : レポート acmacro : マクロ acmodule : モジュールインポート エクスポート リンクするデータのオブジェクト名を文字列式で指定データベースのインポート エクスポート リンクする先のオブジェクト名を文字列式で指定データベーステーブルの構造丈をインポートやエクスポートする時に True を テーブルの構造と其のデータをインポートやエクスポートする時には False を指定 ODBC データベースのログオン ID とパスワードをデータベースからリンクされたテーブルの接続文字列に格納する時は True を指定 此処では ODBC データソースに接続して居る 因みに 引数 databasetype には ODBC を指定する ( 此の辺り サンプルプログラムやヘルプには誤記が有るので注意され度い ) エクスポートでは 指定されたテーブルを 其の儘の名前で ODBC データソース名 SQL65 の Microsoft SQL Server 6.5 にエクスポートして居る インポートでは,SQL Server 上に有る authors テーブルを ローカルの Import_SQL60 テーブルにインポートして居る ( 此の順番も Preview Program のヘルプでは誤記が有るので注意され度い ) リンクでも 同様に authors テーブルを Link_SQL65 テーブルにリンクして居る -7-

下記に TransferDatabase メソッドのコーディング例を示す ' ODBC SQL へのエクスポート Private Sub cmdexpdb_click( ) On Error Resume Next Ac.DoCmd.TransferDatabase acexport, "ODBC", _ "ODBC;DSN=SQL65;UID=sa;PWD=;LANGUAGE=japanese;DATABASE=pubs", _ actable, cbotables.text, cbotables.text If Err Then MsgBox Err.Description, vbcritical, "Error " & CStr( Err.Number ) Else MsgBox "Export ODBC File Complete!!" End If ' ODBC SQL からインポート Private Sub cmdimpdb_click( ) On Error Resume Next Ac.DoCmd.TransferDatabase acimport, "ODBC", _ "ODBC;DSN=SQL65;UID=sa;PWD=;LANGUAGE=japanese;DATABASE=pubs", _ actable, "authors", "Import_SQL65", False If Err Then MsgBox Err.Description, vbcritical, "Error " & CStr( Err.Number ) Else MsgBox "Import ODBC File Complete!!" End If ' ODBC SQL とのリンク Private Sub cmdlinkdb_click( ) On Error Resume Next Ac.DoCmd.TransferDatabase aclink, "ODBC", _ "ODBC;DSN=SQL65;UID=sa;PWD=;LANGUAGE=japanese;DATABASE=pubs", _ actable, "authors", "Link_SQL65", False If Err Then MsgBox Err.Description, vbcritical, "Error " & CStr(Err.Number) Else MsgBox "Link ODBC File Complete!!" End If -8-