Blank?=Falseスマートフォン用の表示で見るBlank?=False「呉下の阿蒙にあらず」をモットーにしたITエンジニアの日々Blank?=Falseこの広告は、90日以上更新していないブログに表示しています。その2以前、こんな記事を書きました。残念だな、そのままではVBAでは動かんよまとめ前回の記事で書いたライブラリ作成についてそもそもクライアントサーバシステムのクライアントの実装自体の経験がなかったので、色々と調べてみました。言っても、低レイヤ層の実装なので、インターネットで余り情報が集められず、Rubyの各DB用アダプタのコードを読みながら勉強してみました。基本的には、Webアプリケーションと同様、リクエストを送ってレスポンスが戻ってくる、というやり方のようです。わかっていないのですが、レスポンスを集めてフォーマット変換して初めて1つの情報として扱えるようになる、とか。このあたりは要勉強かな〜。VBAでソケット通信をするためのライブラリは標準ライブラリにはないようで、ソケット通信のためのAPIを使う必要があるようです。APIを使う次点で「サクッと」ではないような気もするし、自分も作ったことがないのでちょっと今回ゼロからは無理かな、ということになりました。そのうちRubyでこういうアダプタ・ドライバを作ってみたいですね。今回のソケット通信などのコードはこの辺を読んで色々と勉強させていただきました。github.comgithub.comgithub.comVBAからRedisに接続する方法Redisの公式HPにたくさんのクライアントが紹介されていますので、これらのクライアントを使ってVBAに接続できないか調べてみました。dllファイルを作成できれば、VBAでそのdllを参照設定すれば接続できるんじゃないかと思ったんです。色々なクライアントをみたりあーだこーだやってみた結果、殆どのクライアントはUnix系OS用で、Windowsだとビルドも通りません。そりゃ公式でWindowsに対応してませんものね。LinuxにインストールしているRedisにWindowsのクライアントからアクセスする用途はあまりないんでしょうか。そんな中、使えそうだと思ったのがC#/.Netで作成されたStackExchange.Redisというクライアントです。名前から分かる通りStackOverFlowが開発しているものです。C#/.NetならWindowsでも動くはず!github.comそれ以外にも様々なプログラミン語言語で書かれたクライアントがありますので、ぜひRedisの公式を見てください。いうふうに公式にクライアント情報が載っているのはつかいやすくていいですね。今回はWindows環境で作成します。cloneでリポジトリをローカルに保存します。https://github.com/StackExchange/StackExchange.Redis.gitクローン作成が無事完了したら、StackExchange.Redisフォルダを開いて、StackExchange.Redis.slnをVisualStudioで開きます。VisualStudioをお持ちでなければ、個人であれば無料で使えるCommunityをインストールすればOKです。設定しなくても幾つかNuget関係のエラーが発生したもの、後は警告(旧形式エラー)のみで問題なくビルドできました。保存先とを変えたい場合は各自設定してください。各.Netのバージョンに合わせて別々のプロジェクトとなっているので、必要な.Netバージョンのdllだけ欲しい場合はそのプロジェクトだけビルドすればOKです。実際に利用してみるとりあえず、適当にサンプルを作って正常に動くか確認します。Usageを参考にサンプルコードを書いてみます。Sampleどんなコードかというと、"mykey"というキーに"abcdefg"というデータを割り当てて、Redisに保存・読み込みしている処理です。実行結果パット見、ちゃんと動いてそうですね。本当にRedisに保存されているのかわかりません。mykey"abcdefg"よし、OK!残念だな、そのままではVBAでは動かんよC#で動くことを確認できたので、じゃあVBAから使ってみようか!と思っても動きません。C#で作成したdllはそのままではVBAでは使えないようです。下のサイトを参考に、次回はVBAで読み込める形式のdllファイルを作成し、実際にVBAで読み込むところまでやってみたいと思います。blogCOMコンポーネントってなんだっけ・・・最近VBA開発ばかりでWindowネイティブアプリ開発から遠さがっているので色々と忘れてしまってます。まとめ今回、ソケット通信などの低レイヤ層のコードを初めて読んだのですが、何をしているのかサッパリ。Railsでもそうなんですが、普段高レイヤ層で開発していると、低レイヤ層で何をやっているのかがわからなくなります。色々なものが作れるエンジニアとして成長出来ると思います。さしあたってはソケット通信の基礎となるTCP/IPについて勉強してみたいところです。その2Tweet広告を非表示にする関連記事2017-02-06リファクタリングの帽子をかぶるということみなさんこんばんわ。[完結編]何回目かのVBAでRedisを使うポストですが、ようやく今回で無事V...2016-12-04RedisをWindowsにインストールしてVBAで使ってみようとした話RedisというNoSQLデータストアがちょっぱや!な噂をどっかから...2016-11-26NoSQLとは先日、MongoDBの記事を書きました。私、Atomを卒業します。»Profile某製造業の社内Sler。今のお仕事のメインはAccessとVBA。元パッケージソフト開発者。VBA、そしてRDBやNoSQLを組み合わせたアプリケーション開発を得意としています。福岡県、もしくは熊本県へIターン転職に向けて、DB/NoSQLの業務に関われる会社を探しています。レベル1取得しましたリファクタリングの帽子をかぶるということ勉強は大変だが役に立つCUIなCentOS7にcinnamonを導入するLinuxのコマンドはMacOSXでそのまま動くとは限らない月別アーカイブTwitterGooglePocketはてなブログをはじめよう!stonebeach-dakarさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。