質問
· 2021年2月23日

Excel(VBA)でのIRISアクセスについて

弊社では、Cacheの時からExcel(VBA)を使用して、Cache側のクラス定義を抽出して画面に表示する、という開発サポートツールを作成して使用していました。

今回、IRISベースでの開発に移行するにあたって、このExcel(VBA)の動作確認をしました。

実施したことは、VBAのエディタ画面にあるメニューから「ツール」→「参照設定」へと進み、表示される選択リストの「CacheActiveX3.0[IRIS] Type Library」を選択しなおすことで、VBAのコードを変更することなく動作する事が確認できました。

このようなExcel(VBA)への対応はカットされたのではないかと不安がありましたが、流石ですね、ちゃんとカバーされていました。

なお、Type Libraryの名称が「CacheActiveX」で始まっていたのはご愛嬌でしょうか?Cache経験者であれば、問題ないと思いましたが、IRISから使い始めた方にとっては、少々困惑されるかも、と感じました。

Excel(VBA)でIRISに接続する事例がどの程度存在するのかは不明ですが、Excel(VBA)でIRISに接続できると便利だと感じています。今時ですから、ODBC  を使った方が分かりやすいかも知れませんね。

Product version: IRIS 2020.1
$ZV: IRIS for Windows (x86-64) 2020.1 (Build 215U) Mon Mar 30 2020 20:14:33 EDT
ディスカッション (8)2
続けるにはログインするか新規登録を行ってください

Satoさん、ご返信頂きありがとうございます。

早速、ドキュメント(IRISRapidProgramingGuide.pdf)を拝見しました。こういった素晴らしいドキュメントが存在することは知りませんでした。IRISのオンラインドキュメントしかない、と思い込んでいると、IRISの利用方法が分かりづらく感じるのではないかと思われます。今回ご紹介頂きましたようなドキュメントについてのPRをして頂けると有り難いと感じます。(私も協力会社様にPRしたいと存じます。)

個人的には、Satoさん直々にドキュメントを作成されていることに感服しています。

Sato様。

Excel(VBA)からのIRISへのREST/JSON接続の件、今回のアプリケーション開発で利用させて頂きたいと存じます。

これまでは、サーバ側で(データセンターのCacheにて $zf を使用)Excel(VBA)を起動して結果帳票を作成してブラウザでダウンロードする方法を採用していました。

今回ご教授頂きました方法を活用して端末側のExcelからIRISへの接続を実施する仕組みを構築してみたいと思います。(Windows限定になるようですが、この点は問題ないと判断しています。)

本件、ご教授頂き有難う御座いました。感謝しています。

Hirosesさん
提供情報が参考になったなら幸いです。
MACのExcelで全く使えないわけではなく、VBAのフォーム機能が使えないだけです。
なので、ボタンを押してマクロを呼び出し、そこでREST/JSONアクセスするのはできます。
(お知らせしたサンプルにもその例があります)

Hirose様、IRIS版での.NET接続について

InterSystems.Data.IRISClient.dll と

InterSystems.Data.GateWay64.dll

を用いて行う方法を過去拙文に纏めたことがありますのでご紹介します。ご参考になれば幸いです。

https://qiita.com/torisan_/items/24aeee9fdf6459b952c8

Torikai 様。

IRISでの.NET接続についてご教授頂き有難う御座いました。

お知らせ頂きましたホームページの下記の記載の意味をもう少し詳しく解説して頂けないでしょうか。

「IRIS Platformではユーザー登録で」とはどういう内容でしょうか?

宜しくお願い致します。

--- copy --- from ---

これがクラウドにある場合(IRIS Platformではユーザー登録でクラウド上のIRISを利用できるようになります)でも、アドレス指定を変えるだけですので、操作法は共通です。

--- copy ---to ---

Hirose様、ご連絡いただきましてありがとうございます。

意図した内容は、IRIS/Cache'共にIPアドレス:ポートの指定によってStudioや管理ポータルの接続先を変更できる、そのため、クラウド版IRISの利用においても、オンプレ版と共通した操作ができるというものでした。分かりにくく申し訳ありません。

Torikai 様

ご教授頂き有難う御座いました。ご記載頂いた件、了解しました。

弊社ではCacheをクラウド(データセンターの仮想サーバー)に配置してWeb(PHP+ODBC→Cache)で稼動させています。この場合、クラウドサーバーのポートは80番のみを使用しており、特にデータセンター側に追加でOpenして頂く必要も無く、平和に利用させて頂いています。(443番の使用が妥当だと思われますが、社内用システムなので80番でOKとなっています。)

StudioやVBアプリケーションなどでクラウドサーバーに接続する時には、1972ポート等のスーパーサーバーポートのOpenが必要になるように思われますが、正しい認識でしょうか?データセンターによっては、こういった1972番等のポートをOpenすることを(セキュリティ的に)ためらうケースはあるのかなぁ、と思ったこともあります。

その点、RESTでの通信でアプリケーション構築ができると、非常に便利だなぁ、と感じています。REST通信では、ステートレスが基本のようですので、自前で、ある程度のセッション管理的な機能を作りこむ必要はあると思いますが...

ちょっと話題がずれてしまい申し訳けありませんでした。

今後ともどうぞ宜しくお願い致します。