Accessに関する話題です年賀状の宛名書きをkintoneにお願いする。Calendarへの参加表明をしたはいいですが、ネタ選びで思惑が狂ってしまいました。API(eightではなくてSansanの方)とkintoneの連携。ところがSansan様よりAPIの技術情報をブログ等で出すことなかれ、と言われてしまいまして。え、あと私の担当日まで3日しかないのに、どうしよう・・飲み会も続くし、年賀状も書いてないのに。思いついたのがこちらです。はがきといえば差し込み印刷。Wordからkintoneを読み込めないか、という浅い思いつきで調べてみました。実践的な内容とはいえませんが、ごらん頂ければ幸いです。2010で構築しています。12/12に予定されていたkintoneアップデートは延期されてしまいました。アップデートの後も本記事にある技術は使えると思います。あ、それとQiitaから頂いたリマインドメールにはブログにアップしたurlを連携してもよいと書かれていたので、当方のブログにアップしました。不都合があればQiitaに上げなおします。Wordの差し込み印刷さて、まずはWordを立ち上げて下さい。メニューの差し込み文書から、宛先の選択を選びます。すると、新しいアドレス帳というダイアログが開き、情報が入れられます。ちなみに私、Wordの差し込み印刷はほとんど触ったことがありません。入れ終わって閉じてみると、mdbの保存ダイアログが出てきました。ほう、Wordの裏側はAccessだったんですね。これは思惑が狂いました。調べてみたのですが直接Wordを触って差し込み印刷の値を設定する方法がわかりませんでした。Accessとkintoneって近いようであまり連携例を見かけません。この機会に連携も試してみましょう。Accessを任意の場所に保存してみましょう。Accessの設定Accessが出来ました。Address.mdbというやつです。これを元にしてkintoneに一つアプリを作ってみましょうか。作成されたAddress.mdbにあるテーブルは一つだけ。Office_Address_Listというテーブルです。これをエクスポートして、csvファイルとして保存し、そのcsvファイルをkintoneに備わっているcsvからアプリを作る機能で作れば何とかなりそうです。テキストエクスポートウィザードで出してみます。あとは先頭行をフィールドとして使うにチェックを入れてください。kintoneのアプリストアでExcel/CSVからのアプリ作成で、先頭行に見出し行が設定されている必要があります。この場所にcsvを作ってみましょう。kintoneへいよいよkintoneの出番です。アプリストアから「Excel/CSVから作成」を選びましょう。Access.mdbから出力したcsvファイルは、以下の通りとなっています。これはWordのアドレス帳のテーブルです。各項目のフィールドタイプはホームページとメール以外は「文字列(一行)」で設定しましょう。無事、アプリが作成できました。あとはここに住所を入れて行けば、念願のクラウドでの住所録管理は目の前です。あ、それと、kintoneのフォームで各フィールドのフィールドコードの設定を以下の通りでお願いします。CountryいよいよAccessからkintoneへkintoneにアプリを作ったら、今度はAddress.mdbです。このAccessとkintoneが連携できればよいわけです。Editorを開いていただき、ツール(T)→参照設定をお願いします。Runtimeにチェック。それとmdbへのテーブル操作にADOを入れてみましょう。2.8が無難でしょうね。これもチェックをお願いします。つづきまして、以下の標準モジュールとクラスモジュールを入れてください。ファイルのインポートで可能です。それぞれのモジュールファイルは用意しました。ダウンロードしやすいようにzip化しておきました。解凍してお使い頂ければ。^_^JSONMod_CommonDeclarationMod_DataTrustMod_GetKintoneさて、インポート頂いたファイルですが、ほとんどはそのままで使えるようにしていますが、皆様の環境に応じて若干の変更が必要です。Mod_GetKintoneのファイルの19行目。このアスタリスクの2文字は、先にkintoneに作ったアプリのUrlにある数字を入れてください。Mod_DataTrustです。部分に、ご契約されているkintoneのドメイン名を当ててください。Mod_DataTrustです。ここは76、77、78、79行目に情報を入れて頂きます。76行目はベーシック認証の情報です。BAsic_IDの部分にIDを。Basic_PWの部分にパスワードをお願いします。77行目はご契約されているkintoneのドメイン名を****の部分に入力してください。78行目はBAsic_IDの部分にIDを。Basic_PWの部分にパスワードをお願いします。79行目はkintone内で使用するユーザーのIDとパスワードです。PWの部分にPWをお願いします。ここまででAccess.mdbとkintoneの連携は出来ました。AccessからMod_GetKintoneの中にあるgS_CmdDataRequeryClickを実行すれば、kintoneのデータを反映するのがわかります。Wordへさて、Wordに戻りましょう。Wordの文書は新たに作成して結構です。作成したら、差し込み文書を選びます。はがき印刷を選んでください。宛名面の作成を選びましょう。するとはがき宛名面印刷ウィザードが開きます。種類は、年賀/暑中見舞いを選びます。好みで縦書きでも横書きでも結構です。フォントも選びましょう。差出人の情報を選びます。差出人を印刷するにチェックを入れると差出人情報が印刷されます。既存の住所録ファイルにラジオにチェックして下さい。住所録ファイル名は、先ほどAccessのmdbを保存したパスを入力して下さい。これではがき宛名面印刷ウィザードは完了です。すると、年賀状のイメージと各項目のフィールドに、kintoneに入力した情報が出てきます。この時点で出ているのは、当初アドレス帳に入力して、Address.mdbに入った情報です。違う宛先を表示させるには、差し込み文書からメニューの右にある矢印をクリックすればそれぞれの情報にアクセスできます。それではこのWord文書を保存して閉じましょう。一度開き直すと、以下のようなメッセージが表示されます。これは毎回Address.mdbの情報を見に行き、SQL文を発行してAccess.mdbの情報を取得していることを意味します。ここまで出来ているのであれば、もう一段階進んでみましょうか。先程Accessにモジュールを組み込んで頂いた際に、「AccessからMod_GetKintoneの中にあるgS_CmdDataRequeryClickを実行すれば、kintoneからデータを取りに行ってくれます」と書きました。これをWordから行えるようにすれば、いちいちAccessを起動せずに済みますよね。そんなわけで、GetKintoneFromWordをご用意いたしました。こちらもzip化しています。解凍したらGetKintoneFromWord.basが現れます。Editorからファイルのインポートで取り込んで頂ければ。すると、Wordからkintoneの取り込みを行い、その結果をAccess.mdbに取り込むことが出来ます。ある前提で作成しています。組み込んだマクロを実行してみましょう。メニューの表示からマクロ→マクロの表示を選びます。一覧が出るので「アドレス帳最新化」を選んで実行を押してください。するとkintoneで変更した内容がwordにも反映されます。