Articles tagged with: VBA

事例:合同会社TOMONEEL様


Excelのみで内製開発していたヘルパーのシフト管理をkintoneに組み替えて効率化しました

  Topへ↓

合同会社TOMONEEL様は、三重県の亀山市、鈴鹿市にお住まいの方々に対して訪問介護、居宅介護、重度訪問介護、移動支援をはじめ、要支援1~2の方が利用できる総合事業を提供しています。

今、全国的に介護支援に携わるスタッフの方が不足しています。
その上、高齢化が進むわが国においては、合同会社TOMONEEL様のような介護ステーションを展開する事業者様が社会的に求められています。

サイボウズさんが「サイチャレ」という制度を作りました。
サイチャレとは、Cybozu for Challengersの略称で、起業家や事業承継者など変革期にある中小企業の経営者を対象とした、新しい支援プログラムです。

弊社はその支援事業者として手を挙げました。合同会社TOMONEEL様もこの制度に応募しました。
サイボウズさんによって弊社と合同会社TOMONEEL様をマッチングしていただいたことから、今回のご縁が始まりました。


伴走支援を始めたものの

  Topへ↑

サイボウズさんが仲立ちに立っての初回のオンライン打ち合わせや、私たちだけの初回打ち合わせまでは、予定通りに進みました。
ところが、ここからが難航しました。

上記の通り、介護業界は人手不足が深刻です。合同会社TOMONEEL様も例外ではありません。
需要の増加に反比例して、ヘルパースタッフの数が足りなくなり、代表の細川様ご自身が、連日介護活動に注力する必要が生じました。つまり、サイチャレどころではなくなってしまったのです。

数ヶ月もの間、細川様と全く連絡が取れない状況が続きました。
サイチャレの当初のスケジュールでは、8、9月の2ヶ月で伴走支援を行う予定でした。しかし、細川様と連絡がつながり、再度伴走支援を開始できたのは11月を過ぎてからでした。

責任感の強い細川様は、この間にも、介護を求める方々の要望に応えるべく、必死になって働いておられました。
企業経営者として見習うべき姿勢ですし、今の介護業界の現実を間接的に体感しました。

kintoneの使用方法を伴走支援によって説明しつつ、Excelとの違いについても説明しました

  Topへ↑

合同会社TOMONEEL様の場合、業務に必要なシステムとは、ヘルパーの管理、被介護者の管理、シフト管理、さらに支援実績やその支援実績をもとにした自治体への報告業務などです。

合同会社TOMONEEL様は、これらの業務を全てExcelで管理されておられました。細川様は、自力でExcelのマクロを習得し、マクロを駆使して、月々のシフト管理などを行っておられました。

初回の打ち合わせで示していただいたExcelで作成したシステムのメニュー

詳細はこちら



マクロがわかる、つまり、データの行と列の構造を、シートを含めた3次元で理解できるということです。さらに、マクロを駆使して自分でデータを加工できることは、kintoneを導入する上でも大きな手助けになります。

さらに細川様は、データ加工の利便性を追求し、Accessにも一部のデータを置き、そこで加工を実践しておられました。
ExcelとAccessが使える方であれば、kintoneの特性を理解し、使いこなしてもらうハードルは低いはず。

初回の打ち合わせで示していただいたExcelのシフト管理画面

詳細はこちら

初回の打ち合わせで、プログラミングの素養を細川様がお持ちであることを把握しました。そのため、その後の伴走支援についても問題がないだろうと思っていました。

仕様決めのアイデアだしの様子

詳細はこちら

11月に伴走支援を再開した後は、kintoneのデータの持ち方やExcelとの違いについて集中的にお伝えしました。

サイチャレには、提供プログラムの中にスタンダードコースの社員分のアカウントの付与が含まれていましたが、プラグインや外部連携サービスは含まれていません。
つまり、アプリとアプリの連携にあたっては、自力で標準機能を使って実装するか、別にサービスの契約を行うしか選択肢がありません。

しかし、シフト作成などの連携に関しては自動化が必要でした。
マスタを作成し、さらにそのデータをシフトデータや支援実績データとして作ることはできますが、それらのデータをどのように月毎に一括で作成するか。
データ管理をただkintoneに移すだけでは業務改善にはなりません。データの作成の自動化まで支援しなければ、kintoneに乗せ換えた効果は薄れてしまいます。

シフトのデータの持たせた方を決める様子

詳細はこちら

そこで伴走支援にあたっては、JavaScriptの作り方をお伝えするやり方を取りました。VBAマクロが理解できるのであれば、JavaScriptも簡単なプログラムであれば、ご理解と実装を行ってもらえるのではないかと考えました。

そこで、kintoneの特有の癖などを踏まえたご説明を念入りに行い、ご理解の状況を踏まえた上で、いくつかサンプルとなるJavaScriptをお渡しし、それをもとにアプリを作成してみてほしいとお願いしました。

kintoneの特性をご理解し、弊社が支援した内容以上の実装を行ってくださいました

  Topへ↑

さて、しばらく間を置いて、年が明けてから打ち合わせをした際、細川様の実装された内容に驚きました。

弊社が提案した部分だけでなく、他の機能にもアプリが作成され、一部の機能については既にヘルパーさんも加わっての運用が開始されているではありませんか。

伴走支援とは、未来永劫、伴走を続けることを意味しているわけではないと思っています。
ある程度経てば自立し、自発的に活動してもらう支援が目的のはずです。その後も必要に応じて随時アドバイスを行えばよいのです。

その意味でも、今回は当初の弊社のアドバイス以上にどんどんと脚力をつけて自力で改善を始めてくださったことに、とても感動しました。
最初の頃に連絡が取れない時期もあったため、なおさら感動しました。

2024/2/16にサイボウズさん主催で「伴走パートナー様向け共有会」が行われ、事業者さんによる成果の発表会がありました。弊社も参加しました。
事前に細川様には、今の実装内容であれば自信を持って共有会で発表できるはずだとお伝えしていました。

サイボウズさんの担当者様も、連絡が取れなかった時期を把握されておられたので、合同会社TOMONEEL様の実装が無事に順調に進んだことを喜んでいただけました。
ご参加された各社様にも、記憶してもらえたのではないかと期待しています。

さらに5/21にはサイチャレの最終報告会がありました。
その際も弊社は参加しましたが、4月に打ち合わせた際は、すでにこちらからお手伝いすることもなさそうでした。
むしろ、どんどんとkintoneのアプリを作成し、運用に載せておられる様子に安堵しました。一段とレベルアップしたkintoneの形が拝見でき、弊社の手を離れて自社でkintoneを内製できることを確信しました。

そして、5/21の最終報告会では、自力でモバイル対応とモバイル版でのカスタマイズまで手を染めておられる姿に驚嘆しました。私以外の参加者の方からも驚きの声が上がっていたことが思い出されます。
私としても誇らしい瞬間でした。

最終報告会でのスライドの抜粋

詳細はこちら

運用中の運転日報の抜粋

詳細はこちら

運用中のkintoneメニューの一部

詳細はこちら

2月の「伴走パートナー様向け共有会」の時点では、合同会社TOMONEEL様はご利用者様の情報をきちんと管理するため、権限設定もきちんとされておられました。
つまり、弊社でもアプリ群は見られない形になっていました。そのため、この記事には今の最新の構成は載せられません。
それはつまり、完全に弊社から自立したことを意味しています。実に喜ばしいことです。
今や、弊社が伴走支援をしていた時以上に進化したkintoneが展開され、介護を求める利用者様のために活躍していることでしょう。

最終報告会では、細川様自身に属人化している開発の部分を打破したいことや、支援者の家族にも公開したいなどといった意欲的な目標も掲げておられましたので。
楽しみです。

まとめ

弊社としても、伴走支援を業務の一つとして加えるにあたり、合同会社TOMONEEL様との取り組みは大きな自信につながりました。
今回は全てがオンラインで完結し、一度も対面ではお会いしていません。それでも伴走支援がやり遂げられることに大きな自信が得られました。
もちろん、今回の事例は全てのお客様にとって適用できません。細川様が自分で構築できる調査能力や意欲をお持ちだったことと、ExcelやAccessでの構築経験があったためです。
別のお客様にはそもそもサービスやプラグインありきの提案の方が適していた可能性もあります。
弊社もそのあたりの見極めはこれからも間違えないようにしたいと思います。

細川様、合同会社TOMONEELの皆様、ありがとうございました。

合同会社TOMONEEL様のご紹介

会社名 合同会社TOMONEEL
所在地 〒519-0124 三重県亀山市東御幸町97番地1
TEL 0595-98-6909
FAX 0595-98-6908
事業内容 訪問介護、居宅介護、重度訪問介護、移動支援、総合事業
代表FAX 細川薫
URL https://www.tomoneel.co.jp/

RICOH kintone plusのRICOH 帳票作成プラグインの攻略ポイント


  Topへ↓

とある案件でRICOH kintone plusを使ったkintoneの構築を行っています。
RICOH kintone plusといえば、RICOH社によるkinotneです。サイボウズ社が提供するkintoneとの違いは、RICOH社の複合機との連携機能が標準で搭載されていることに加え、いくつかのプラグインが無償でついてきます。(サービスサイト
RICOH kintone plusに付属するプラグイン一覧
本稿では、これらのプラグインのうち、RICOH 帳票作成プラグインに焦点を当てて説明します。

kintoneを取り巻くパートナー企業やサービス、プラグインの集合を意味する概念であるエコシステムには多くの帳票発行サービスがあります。弊社はこれまで、お客様のニーズに合わせて様々な帳票発行プラグインを導入し、帳票の出力を可能にしてきました。
ところが、RICOH 帳票作成プラグインは今まで培ったやり方が通用しないところがありました。
RICOH 帳票作成プラグインを使いこなすにあたり、苦戦したポイントとその攻略法を共有しておいた方がよいと思います。この先も苦労されるであろうユーザーさんのためにも。


2.認証の設定

  Topへ↑

本稿はRICOH kintone plusの申し込みは既に終わっている想定です。
該当するサブドメインにアクセスし、kintoneシステム管理→プラグインに移動すると、RICOH kintone plusで提供されるプラグインがインストールされています。

この中のRICOH 帳票作成プラグインが本項で取り扱う対象のプラグインです。

RICOH kintone plusで各種のプラグインを使うには、EMPOWERING DIGITAL WORKPLACESにアカウントを作成する必要があります。EMPOWERING DIGITAL WORKPLACESとはRICOH社のクラウドサービスの総称といえばよいでしょうか。(サービスサイト)

これが少し厄介です。導入後、まず初めての一回だけ、上の画像を参考にアカウントを設定する必要があります。
出典元はこちらのサイトです。

さらに、RICOH kintone plusに必ずアプリとして入ってくるRICOH EDW認証アプリにRICOH EDW認証プラグインを設定します。

上の画像を参考にしてください。
出典元はこちらのサイトです。

ここで登録したユーザーは、kintoneのアカウントごとに認証が必要です。
帳票を出力する対象のアプリから出力する際、Aというアカウントで出力したあと、Bというアカウントで出力する際にRICOH EDW認証アプリを開いてユーザー認証を行う必要があります。その後Aというアカウントで出力する際にRICOH EDW認証アプリからユーザー認証をやり直す必要があります。
複数アカウントから同じアプリの帳票を出す際にはこのユーザー認証の手間が入りますので、ご注意ください。

3.ひな型の作成にあたっての問題

  Topへ↑

RICOH 帳票作成プラグインはkintoneからExcelファイルが出力できるプラグインです。
事前にRICOH kintone plusに帳票ひな型管理アプリを作成し(マニュアル)、Excelファイルをテンプレートとして帳票ひな型管理アプリに登録する必要があります。
kintoneからExcel帳票を出せるプラグインとしては、RepotoneU ExcelやRepotoneU Proがよく知られています(製品サイト)。RepotoneUで帳票の設定方法はkintoneアプリのプラグイン設定画面より、画面上に再現されたセルにkintoneの項目をマッピングしていくやり方です。

一方、RICOH 帳票作成プラグインは事前にテンプレートとなるExcelのセルに疑似関数のような文字列(${フィールドコード})を埋め込んでおきます。
するとRICOH 帳票作成プラグインが出力のタイミングで動的にセルに値を埋め込んでくれる仕様です。
単純なセルのマッピングであれば、このやり方で困ることはそうありません。

が、テーブルを出力しようとした場合、途端に苦しくなります。

kintoneからExcelで出力できるいくつかのプラグインのうち、gusuku Customine(製品サイト)のExcel出力の設定方法も似たようなやり方を採用しています。Excelのセルに疑似関数のような文字列($(フィールドコード))を埋め込んでおくことで任意のフィールドの値を帳票に出力できます。

ただし、gusuku CustomineのExcel出力の場合、テーブルを出力する際にさまざまな関数が用意されています。あまり困りません。$FOREACH~$ENDを使ってもよいですし、SLICE関数を使えば途中の行も切り出すこともできます。$(テーブルのフィールドコード)(行番号)(テーブル内のフィールドコード)で行単位で出力もできます。(CustomineでExcel出力 / PDF出力を試してみよう)(リファレンスマニュアル)

ところが、RICOH 帳票作成プラグインでテーブルを出力する際は、工夫を加えないと途方にくれます。

RICOH 帳票作成プラグインはこの図のようにテーブルの先頭行のセルに${テーブルのフィールドコード.テーブル内のフィールドコード}を入力します。
その際、マニュアルを読む限りでは、一部の行だけを出すことができないようです。つまり、kintoneのテーブル側で行数に上限を設けておかないと、帳票側は最大で5000行が出力されてしまいます。

さらに、別の重要な問題が存在します。
それはRICOH 帳票作成プラグインがテーブルを出力する際、自動的に行を挿入する仕様になっていることです。しかもセル範囲の行だけを自動挿入するのではなく、行全体を自動する仕様になっています。

例を挙げると、kintone側のアプリのテーブルがこのようになっていたとします。



すると、仮に帳票側でV列とW列にテーブルの内容を出力しようとした場合、このようにテンプレートファイルを設定する必要があります。

ところが、これを帳票として該当するアプリから出力すると、このような結果になってしまいます。A列からT列に同じ情報が2行入っていますね。つまり、行ごとコピーしているため、関係のないA列からT列にも同じ情報がコピーされてしまうのです。

しかも、これが左右に別々のテーブルが並ぶとさらにまずい状態になってしまいます。例えば、この状態の複数のテーブルに3行と2行をそれぞれ入力し、テンプレートの左右にそれぞれのテーブルを並べるとします。


すると結果はこうなってしまいます。V列とW列は2倍になってしまいますし、Y列とZ列は2倍になってしまいます。A列からT列は6行コピーされます。つまり、3行×2行で6行がコピーされてしまうのです。
これをどうするか。私がこの問題に気づいたとき、お客様の帳票では左右に別々のテーブルの値を出す必要がありました。相互に掛け合って行数が増えてしまう状態ではとても本番運用に乗せられません。

あと一つの問題は、SUM関数をどうするかです。行数が動的に増えるということは、SUM関数で設定したセル範囲も変わってしまう可能性があります。この問題をどうすれば解消できるか。
また、もう一つ重要な問題があります。それはセルに設定した関数が動作しないことです。
関数をセルに設定した状態のテンプレートを登録し、その登録されたテンプレートを基に該当のアプリで帳票発行を行うと計算がされない。そのような問題が起きたのです。
通常であればExcelのセルに設定した関数を計算する場合、F9キーを押すかShift+F9キーを押せば再計算されるはず。ところが再計算がされません。
再計算させるにはF2キーでセルを編集し、Enterキーを押す必要がありました。でも、お客様に関数が設定されたすべてのセルを一つ一つ選択してもらい、F2キーを押してもらうことなどできるわけがありません。
再計算がされない問題を解消しないと運用に回せません。ここはかなり頭を悩ませました。再計算の問題だけではありません。テーブル行数や関数の範囲が変動する問題、左右に配置したテーブルが相互に掛けあってしまう問題など、実運用までは課題が山積みでした。

4.問題の解決にVBA

  Topへ↑

結論から言うと、VBA(Visual Basic for Applications)を活用し、上記の問題を全て解決しました。

Excelはマクロなしのブック(拡張子がxlsx)とマクロありのブック(拡張子がxlsm)があります。
RICOH kintone plusに作成した帳票ひな型管理アプリにはどちらの拡張子のExcelブックも登録することができます(RepotoneU Excel/Proでも可能です)。

帳票ひな型管理アプリにマクロありのブックを登録します。ユーザーはkintoneの該当アプリからExcel帳票を発行し、発行されると添付ファイルフィールドに添付されます。ユーザーはそこからダウンロードし、Excelブックを開きます。その瞬間にマクロが動作するようなVBAマクロを事前に設定しておくのです。
つまり、帳票ひな型管理アプリに登録する時点でマクロ付きのブックとして登録することです。
そのマクロの中で上記の諸問題が解消するようにしておけばよいのです。

ただし、ここでもう二点、Excelマクロを動作させるために注意しておくべきことがあります。
・ユーザーには必ずダウンロードし、インストール版でかつ最新版(2016以降であれば安心)のExcelで開いていただく。Office 365やMicrosoft 365などのブラウザでは動かさないようにお伝えする。
・kintoneからダウンロードしたExcelブックは信頼できるサイトからのファイルではないため、kintoneを使っているブラウザ上で信頼できるサイトに登録していただく必要があります。
やり方は、インターネットからのマクロは、Office で既定でブロックされますの記事に詳細が載っています。下記画像もご確認ください。あと、すみません、Macでは同様の問題が起こるのかどうかは分かりません。

さて、準備が整いました。
それぞれの問題の解消方法をざっくり記します。

まずは再計算です。ExcelのVBAにはApplication.Calculateという再計算を行うメソッドがあります。ところがVBAの中でApplication.Calculateを実行しても再計算はされません。ということは他の方法を試す必要があります。
解決策として以下のようにFormula2R1C1で再度該当セルに関数を埋め込み、Application.Calculateで再計算させました(上の関数は10列左のセルの〇年〇月〇日をyyyy/mm/ddの形式に変えた上で曜日に切り替えています)。

.Sheets("test").Cells(3, 11).Formula2R1C1 = _
"=SWITCH(WEEKDAY(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(RC[-10],""年"",""/""),""月"",""/""),""日"","""")),1,""日"",2,""月"",3,""火"",4,""水"",5,""木"",6,""金"",7,""土"")"
.Sheets("test").Cells(54, 22).Formula2R1C1 = _
"=IF(ISNUMBER(R[1]C[-13]),R[1]C[-13],0)"
Application.Calculate

続いてテーブル行数の問題です。
これはテーブルごとに別シートを用意することで解決しました。別シートごとであれば何千行になろうとも問題は生じません。RICOH 帳票作成プラグインで扱えるテンプレートは複数シートの対応が可能です。複数シートに任意の関数を設定すれば値が設定されます。
テーブルごとに別シートで設定することにより。左右に配置したテーブルが相互に掛けあって不要なコピーが行われる問題も解消できました。
また、セル内に設置する関数のセル範囲が不明な点については関数にする必要がなく、VBAで設定すれば大丈夫です。(挿入されることを見越してセル範囲を多めに設定しておくことで参照範囲の問題は早い時点で解消できていましたが、再計算がされないことには変わりなかったので)
例えばセルの下端行は以下のようにVBAで設定できます。

.Cells(.Cells.Rows.Count, 1).End(xlUp).Row

なお、該当のテンプレートブックに設定するVBAマクロは、

Private Sub Workbook_Open()

を利用しました。ただし、このサブルーチンはテンプレートブックを修正するたびに処理が走り、値が転記されてしまいます。その状態で帳票ひな型管理アプリにセットすると意図しない形になってしまいます。ここはお気を付けてください。

Private Sub Worksheet_Activate()
End Sub

のようにシート単位で処理が走るようにしても良いかもしれません。

5.他の運用上のご注意

  Topへ↑

他にも、RICOH 帳票作成プラグインを活用する上ではいくつかの注意点があります。
上に書いた通り、帳票ひな型管理アプリに設定を追加する際、帳票を出力するアプリも指定します。
その結果、一つのアプリで複数種類の帳票を出す場合には帳票ひな型管理アプリに複数レコードを登録します。
ただし、その結果でもアプリにボタンは一つだけしか表示されません。そのボタンを押下することで複数の帳票を選べるダイアログが出る仕組みです。

ところが、出力された結果が格納される添付ファイルフィールドは一つしか選べない仕様です。
つまり、複数種類の帳票を一つのアプリから出すには帳票発行の運用上の工夫が必要です。そうしないと現場で混乱を招く恐れがあります。

本稿で書いたことは、RICOH 帳票作成プラグインの今後のバージョンアップで改善されていくはずです。RICOH kintone plusもまだまだ改善されていくことでしょう。
本稿で触れた制約をさしおいても、RICOH kintone plusを使うと複合機との連動以外にも複数のプラグインが追加費用無しで最初から使えることは魅力です。から。
ただし、現時点では本項に書いたような運用上の制約次項が発生することだけはご注意ください。特に、RICOH 帳票作成プラグインについてはVBAマクロによるカスタマイズが必須になるはずです。その点を注意してもらえればと思います。

本稿がRICOH 帳票作成プラグインを使う方々にとってご参考になれば幸いです。


アクアビット航海記 vol.33〜航海記 その19


あらためまして、合同会社アクアビットの長井です。
弊社の起業までの航海記を書いていきます。以下の文は2018/2/22にアップした当時の文章が喪われたので、一部を修正しています。

社員になること


正社員になった私。
今までずっと派遣される側だった立場から派遣する立場へ。

正社員の話をいただき、それを受け入れる決断。そこにどのような葛藤があったのか。正直なところ、自分自身のことなのにあまり覚えていません。
正社員のお話が来たことで、これ幸いと満面の喜びを必死に隠し、内心で快哉を叫びながら受け入れたのか。はたまた、かつて尼崎市役所の外郭団体のお話を蹴った時のような気概を持ちながら、妥協の結果として正社員の話を受け入れたのか。
うーん、どちらでもないような。そんな記憶は残っていません。
ただ、本連載の第三十一回(https://www.akvabit.jp/voyager-vol-31/)で、オペレーターさんとの絆がなくなったことにショックを受けたと書きました。
私が正社員に取り立てられたことは、オペレーターさんとの断絶をさらに広げたはずです。

当時の私の心境を慮るに、ただお話をいただくままに受け入れた、という程度だと思います。
差し出された水を、さほど疑わずに飲むように。もちろん、水の匂いぐらいは嗅いだはず。つまり、正社員の話が自分にとって損か得か、は考えたはずです。

過去の私に質問


では、得とはなんでしょう。身分の安定。対外的な信用。収入の安定。挙げてみればそんな感じでしょうか。
逆に、損とはなんでしょう。収入の減少。束縛の発生。将来の固定。そんな要因が思い浮かびます。
当時の私が何をどう考えていたのか、今の私からQ&A形式で問うてみたところ、関西弁で返事が返ってきました。

まず損の観点から。
Q. 収入の減少についてどう思っていましたか?
A. スーパーバイザーの収入はなんやかんやと手取りで30万はもろてました。残業したらその分も精算してもらえたっちゅうのも大きいです。いやぁ、ぎょうさんもらえましたわ。今まで勤めていたアルバイト、派遣社員、ブラック企業のどこよりもお金もらえてありがたかったです。当時、ぼんやりと思とったのは、実年齢よりも手取りが上回っとったらええんちゃう?ということ。20代なかばで30万以上はもらえとったから、ええんと違うかなあと。
正社員になったら、給与は固定性になるし、残業代も減らされるし。うーん。どないしょ、と思ったのは事実。そやけど、ま、正社員の提示額を計算したらせいぜい数万円ぐらいの減で済みそうやし、まあ損にはならんかぁ、と思ってました。
Q. 束縛が発生することは考えませんでしたか? 正社員になれば社員としての身分に縛られるし、対外活動にも制約が課せられます。
A. うん、考えたよ。束縛についてはぼんやりとね。そらぁ確かに正社員の立場は損になるかもしらん。でも、社員になったからといって公私までは束縛されへんやろ?少なくとも大成社よりブラックちゃうやろ?って思ってたぐらい。そもそも対外活動っちゅうても、当時はSNSとかないし、書いたり喋ったりしようにもどこにも場所がなかったし。そやからそもそも損とか全く思わへんかったわ。
Q. 将来が固定されてしまう、とかは思いましたか?
A. 正社員になったら、将来の自分の道が狭なってしまうってか?たしかに関西におった頃は、クリエイティブな職を考えとったけどね。そやから正社員になってもうたら、将来勤め人で固まってまうがな、っていう心配もちぃとだけありました。でも、今までも何回も転職繰り返しとったからね。まぁ次の道が決まれば辞めてもええかなぁ、くらいに思ってました。そやから将来が固まってまうこともあんまり損とか考えてへんかった。

続いて、得とは何かについて考えてみます。
Q. 身分の安定は得ではありませんか?
A. たしかにアルバイトとか派遣社員を転々としてばっかりやったからねぇ。でもあんまり正社員には憧れてへんかったなぁ。自分が人からどう見られるかも興味ないし。無頓着ってやつ?身分がどうとかも興味なかったし、だから正社員になりたいとかもなかった。なので、得とはあまり思わんかったなぁ。
Q. 対外的な信用は得られたのではありませんか?
A. 確かにね。相方が歯医者やし、結婚する時も相方の親族からは結構冷たい視線を浴びたからなぁ。たしかに正社員になって見返したろ、っちゅう気持ちはちょっとあったかも。歯医者の夫やし、せめて正社員の肩書ぐらいは持っとかんとなぁ。という気持ちもちょっとはね。
でもな、もうすでに乗り越えて結婚した後に来たんや、正社員の話って。これが結婚前やったら釣り合いとるために正社員にもう少し前向きやったかもしらんけど、すでに結婚してたから、今さら対外的な信用、っていわれてもピンと来ぉへんやん?そやから、対外的な信用のことはあまり重要とは考えへんかったなぁ。
Q. 収入の安定はどうなんでしょう?
A. これは……一番大きな理由やったかもしれへん。所帯も持ったし、奥さんも派遣社員の不安定よりは正社員を、っていうことは思ってたはずやしね。でもね、一年ちょっとスーパーバイザーやってたけど、毎月結構なお金もろててんよ。定期的に30万と少しは。そやし、その頃はうちの相方も大学病院に勤めてたし、お金に不足は感じひんかったんとちゃうかなぁ。
ただね、ちょうど正社員の話が来た頃って、相方がお仕事休まんならん事情ができたんよね。え?なんでかって? 子ども。子どもがでけてん。まぁ子どもができるまでもいろいろあってなぁ。話せば長くなるから、今日は堪忍して。ただ、それでいろいろあったから、正社員の話にふらっと流れてしもたのかもしらんなぁ。
Q. 忘れかけの怪しげな関西弁でお答えしてくださり、ありがとうございます。

正社員になったことで得たもの


結局、私が正社員の話を受け入れたのは、将来的な視点からというより、その時の事情、とくに子どもを授かったことが理由でした。
その時の私が変なプライドを発揮して正社員の話を断らなかったことに感謝です。当時の私といえば、さりとて正社員に過大な幻想を抱くこともせず、自然に正社員の話を受けたのでした。

正社員になったことで、私はより多くの仕事を任されるようになりました。
今までは派遣社員だったので、現場で滞りなく集計業務を進めていくだけでよかったのです。でも正社員である以上、違う仕事も担っていかねばなりません。

正社員になったことで、私はより上のスキルや広い視野を得られました。
たとえば、当時手掛けていたオペレーターさんやスーパーバイザーさんの出退勤管理システムのメンテナンスもその一つ。
パソナソフトバンクに所属する皆さんは、出退勤の際に社員証に印字されたバーコードを読み取ります。Microsoft Accessによって作られたそのシステムは、現場と事務所の二カ所に設置されていました。現場の打刻用と、横浜ビジネスパーク(YBP)の別フロアにあるパソナソフトバンクが分析システムための二つです。
ところがこのAccessはカスタムメイドで、しかも作った方がすでに離任していました。そのため、私はこの勤怠管理システムのメンテナンスを任されました。
また、これは少し後の話ですが、パソナソフトバンクからスカパーさんへ毎月提出する請負業務の請求書の作成も私に任されました。そしてこれも少し後ですが、外のお客様の案件も手掛ける機会をいただきました。スカパーの現場だけでなく、違う現場も経験させないと、という上司の判断だったのでしょう。
そんな私の下には、常勤のオペレーターさんが配属され、私は上司になりました。人に指示する立場。それは社会人になって初の経験でした。

次回は、当時の私が抱えていた仕事からいったん離れ、子どものことについて書こうと思います。
初めて子を持つにあたり、いろんなことがありました。
それらの出来事も、私の起業を語る上では外せません。
ゆるく長くお願いいたします。


年賀状の宛名書きをkintoneにお願いする。WordとAccessを和えて


kintone Advent Calendarへの参加表明をしたはいいですが、ネタ選びで思惑が狂ってしまいました。ネタにしようと目論んでいたSansan API(eightではなくてSansanの方)とkintoneの連携。ところがSansan様よりAPIの技術情報をブログ等で出すことなかれ、と言われてしまいまして。
え、あと私の担当日まで3日しかないのに、どうしよう・・飲み会も続くし、年賀状も書いてないのに。・・・ん?年賀状? と思いついたのがこちらです。はがきといえば差し込み印刷。Wordです。Wordからkintoneを読み込めないか、という浅い思いつきで調べてみました。 あまり実践的な内容とはいえませんが、ごらん頂ければ幸いです。

本記事のネタは 2015/12/11時点のkintoneとWord 2010とAccess 2010で構築しています。12/12に予定されていたkintoneアップデートは延期されてしまいました。アップデートの後も本記事にある技術は使えると思います。
あ、それとQiitaから頂いたリマインドメールにはブログにアップしたurlを連携してもよいと書かれていたので、当方のブログにアップしました。不都合があればQiitaに上げなおします。

 

Wordの差し込み印刷

さて、まずはWordを立ち上げて下さい。メニューの差し込み文書から、宛先の選択を選びます。

1

 

すると、新しいアドレス帳というダイアログが開き、情報が入れられます。いいですねぇ。ちなみに私、Wordの差し込み印刷はほとんど触ったことがありません。

2

 

で、入れ終わって閉じてみると、mdbの保存ダイアログが出てきました。ほう、Wordの裏側はAccessだったんですね。これは思惑が狂いました。調べてみたのですが直接Wordを触って差し込み印刷の値を設定する方法がわかりませんでした。でも、Accessとkintoneって近いようであまり連携例を見かけません。この機会に連携も試してみましょう。ではAccessを任意の場所に保存してみましょう。

3

 

Accessの設定

Accessが出来ました。Address.mdbというやつです。じゃあこれを元にしてkintoneに一つアプリを作ってみましょうか。作成されたAddress.mdbにあるテーブルは一つだけ。Office_Address_Listというテーブルです。これをエクスポートして、csvファイルとして保存し、そのcsvファイルをkintoneに備わっているcsvからアプリを作る機能で作れば何とかなりそうです。

4

 

テキストエクスポートウィザードで出してみます。

5

 

カンマ区切りですね。あとは先頭行をフィールドとして使うにチェックを入れてください。kintoneのアプリストアでExcel/CSVからのアプリ作成で、先頭行に見出し行が設定されている必要があります。

6

 

じゃあ、この場所にcsvを作ってみましょう。

7

 

そしてkintoneへ

いよいよkintoneの出番です。アプリストアから「Excel/CSVから作成」を選びましょう。そしてAccess.mdbから出力したcsvファイルは、以下の通りとなっています。これはWordのアドレス帳のテーブルです。各項目のフィールドタイプはホームページとメール以外は「文字列(一行)」で設定しましょう。

8

 

無事、アプリが作成できました。あとはここに住所を入れて行けば、念願のクラウドでの住所録管理は目の前です。あ、それと、kintoneのフォームで各フィールドのフィールドコードの設定を以下の通りでお願いします。

            ふりがな(姓) → FamilyName_Furigana
            姓 → FamilyName
            ふりがな (名) → FirstName_Furigana
            名 → FirstName
            敬称 → Title
            会社名 → CompanyName
            部署名 → DivisionName
            役職 → Position
            郵便番号 → ZipCode
            住所 1 → Address1
            住所 2 → Address2
            住所 3 → Address3
            勤務先電話番号 → OfficeTelNo
            勤務先 FAX 番号 → OfficeFaxNo
            自宅電話番号 → HomeTelNo
            自宅 FAX 番号 → HomeFaxNo
            連名 → JointSignature
            連名敬称 → JointSignatureTitle
            電子メール アドレス → MailAddress
            ホーム ページ → WebSiteUrl
            市区町村 → City
            都道府県 → Prefecture
            国/地域 → Country

9

 

いよいよAccessからkintoneへ

kintoneにアプリを作ったら、今度はAddress.mdbです。このAccessとkintoneが連携できればよいわけです。ここで、Visual Basic Editorを開いていただき、ツール(T)→参照設定をお願いします。

10

 

参照設定でなにをするかというと、連想配列を使うのでMicrosoft Scripting Runtimeにチェック。それとmdbへのテーブル操作にADOを入れてみましょう。Access 10であれば ADO 2.8が無難でしょうね。これもチェックをお願いします。

11

 

つづきまして、以下の標準モジュールとクラスモジュールを入れてください。ファイルのインポートで可能です。なお、それぞれのモジュールファイルは用意しました。ダウンロードしやすいようにzip化しておきました。解凍してお使い頂ければ。あ、怪しくないので大丈夫ですよ ^_^

JSON
Mod_CommonDeclaration
Mod_DataTrust
Mod_GetKintone

12

 

さて、インポート頂いたファイルですが、ほとんどはそのままで使えるようにしていますが、皆様の環境に応じて若干の変更が必要です。そうしないと動きません。例えば、Mod_GetKintoneのファイルの19行目。ここで
Set objJSON = GetJSON("/k/v1/records.json?app=**") という記載があります。このアスタリスクの2文字は、先にkintoneに作ったアプリのUrlにある数字を入れてください。

12-3

 

続いて Mod_DataTrustです。ここは7行目。
Private Const TARGET_URL As String = "https://*******.cybozu.com"
という記述の****** の部分に、ご契約されているkintoneのドメイン名を当ててください。

12-1

 

さらに Mod_DataTrustです。ここは76、77、78、79行目に情報を入れて頂きます。
76行目はベーシック認証の情報です。BAsic_IDの部分にIDを。Basic_PWの部分にパスワードをお願いします。
77行目はご契約されているkintoneのドメイン名を****の部分に入力してください。
78行目はBAsic_IDの部分にIDを。Basic_PWの部分にパスワードをお願いします。
79行目はkintone内で使用するユーザーのIDとパスワードです。IDの部分にIDを。PWの部分にPWをお願いします。
12-2

さて、ここまででAccess.mdbとkintoneの連携は出来ました。AccessからMod_GetKintoneの中にあるgS_CmdDataRequeryClickを実行すれば、kintoneのデータを反映するのがわかります。

 

再びWord

さて、Wordに戻りましょう。Wordの文書は新たに作成して結構です。作成したら、差し込み文書を選びます。さらにはがき印刷を選んでください。

13

 

さらに、宛名面の作成を選びましょう。

14

 

するとはがき宛名面印刷ウィザードが開きます。

15

 

種類は、年賀/暑中見舞いを選びます。

16

 

さらに様式を選びましょう。好みで縦書きでも横書きでも結構です。

17

 

フォントも選びましょう。

18

 

差出人の情報を選びます。差出人を印刷するにチェックを入れると差出人情報が印刷されます。

19

 

既存の住所録ファイルにラジオにチェックして下さい。さらに、住所録ファイル名は、先ほどAccessのmdbを保存したパスを入力して下さい。

20

 

これではがき宛名面印刷ウィザードは完了です。

21

 

すると、年賀状のイメージと各項目のフィールドに、kintoneに入力した情報が出てきます。この時点で出ているのは、当初アドレス帳に入力して、Address.mdbに入った情報です。

22

 

違う宛先を表示させるには、差し込み文書からメニューの右にある矢印をクリックすればそれぞれの情報にアクセスできます。

23

 

それではこのWord文書を保存して閉じましょう。そして、もう一度開き直すと、以下のようなメッセージが表示されます。これは毎回Address.mdbの情報を見に行き、SQL文を発行してAccess.mdbの情報を取得していることを意味します。

25

 

さて、ここまで出来ているのであれば、もう一段階進んでみましょうか。
先程Accessにモジュールを組み込んで頂いた際に、「AccessからMod_GetKintoneの中にあるgS_CmdDataRequeryClickを実行すれば、kintoneからデータを取りに行ってくれます」と書きました。では、これをWordから行えるようにすれば、いちいちAccessを起動せずに済みますよね。
そんなわけで、GetKintoneFromWordをご用意いたしました。こちらもzip化しています。解凍したらGetKintoneFromWord.basが現れます。これをWordのVisual Basic Editorからファイルのインポートで取り込んで頂ければ。すると、Wordからkintoneの取り込みを行い、その結果をAccess.mdbに取り込むことが出来ます。なお、mdbの場所は C:¥kintone¥Address.mdb にある前提で作成しています。26

 

では、組み込んだマクロを実行してみましょう。メニューの表示からマクロ→マクロの表示を選びます。

26

 

一覧が出るので「アドレス帳最新化」を選んで実行を押してください。

27

 

そうするとkintoneで変更した内容がwordにも反映されます。これで完成です♪
どうでしょう? 今ならまだ年賀状に間に合いますよ♪

29