みむらです。つけてみました。
なかなかにごっちゃごっちゃするよね、っていうか、してるよね。
でも、こんなにそういうサービスがあったんだーっていうのも見てびっくり。
多分、RSS と、そこから転載してる Facebook さんの方には飛びません。あしからず。
なんとなく、こういうのがないと、ブログがぼっち過ぎるので、
付けてみたわけですが、んー。んー。んー。
ってことで、何言ってるのかわかんねーよってひとは、
こっちみてください。はい。
みむらです。つけてみました。
なかなかにごっちゃごっちゃするよね、っていうか、してるよね。
でも、こんなにそういうサービスがあったんだーっていうのも見てびっくり。
多分、RSS と、そこから転載してる Facebook さんの方には飛びません。あしからず。
なんとなく、こういうのがないと、ブログがぼっち過ぎるので、
付けてみたわけですが、んー。んー。んー。
ってことで、何言ってるのかわかんねーよってひとは、
こっちみてください。はい。
またしても、不思議なことをしてみました。
今回解かせたのは、
http://www.geocities.jp/m_hiroi/prolog/prolog01.html#chap4
こちらのウェブサイトで紹介されている、「家系図」の問題。
ダウンロードに関して
ソースコード: https://github.com/mimura1133/mm_Prolog_for_Excel
バイナリ:http://mimumimu.net/beta/programs/PrologExcel.zip
コードの紹介は今回は割愛しますが、
導入の方法について、かなり変態的なので紹介します。
ファイルを展開すると、このようなファイルが入っています。
この中から、 install.bat を探し、右クリック –> 管理者として実行
実行したら、 Excel を立ち上げます。
ファイルメニュー内の「オプション」をクリック
開いたダイアログから、「アドイン」を選び、
一番下の管理について、「Excel アドイン」を選んで、「設定」を押します。
そして、オートメーションをクリック。
中から、PrologExcel.PrologExcel を選んで、OK を押す。
PrologExcel.PrologExcel が追加されるので、チェックを付けて OK を押す。
このアドインには大きく2つの関数があります。
Prolog_List()
Input : Excel List
Output: Prolog List
この関数は、
male | taro |
male | ichiro |
male | jiro |
male | saburo |
というような一覧が存在したとき、
male(taro).
male(ichiro).
male(jiro).
male(saburo).
このような、Prolog のリスト形式に変換してくれます。
また、下記のように、いくつもリストがある場合、
特に難しい事はしていませんので、 Excel の通常の文字列結合同様、
「&」マークで結合すれば問題ありません。
Prolog()
Input : Program, Query
Output : Answer
第一引数に、リスト定義などを与え、
第二引数に、クエリを与えます。
クエリを投げる際は、
:- parents_of(X, ichiro).
のように、「?-」 ではなく、「:-」として投げるようです。
(・・私は Prolog を使う人じゃ無いのでよく分かりません・・。)
なお、この関数が実行される際、多少ラグが発生するのでご了承下さい。
とりあえず、こんな感じで。であであ。
みむらです。IronPython ってのがあるので、ちょちょいと。
仕組みとしては、Visual Studio の VSTO (Visual Studio Tools for Office) を使って、
Office 向けのアドインを作って、その中で IronPython を動かそうーってこと。
結果としてはこんな感じ!
とりあえず、VSTO の書き方とかは割愛して。
ソースはここに:
https://github.com/mimura1133/mm_Python_for_Excel
using Microsoft.Scripting.Hosting; using IronPython.Hosting; namespace ExcelAddIn1 { public partial class ThisAddIn { public static string Code = ""; static ScriptEngine _python; static ScriptScope _python_scope; private void ThisAddIn_Startup(object sender, System.EventArgs e) { _python = Python.CreateEngine(); _python_scope = _python.CreateScope(); _python_scope.SetVariable("Application", Application); _python_scope.SetVariable("Function", Application.WorksheetFunction); _python_scope.SetVariable("Cells", Application.Cells); } private void ThisAddIn_Shutdown(object sender, System.EventArgs e) { } public static void Run() { var cc =_python.CreateScriptSourceFromString(Code); cc.Execute(_python_scope); } #region VSTO generated code /// <summary> /// Required method for Designer support - do not modify /// the contents of this method with the code editor. /// </summary> private void InternalStartup() { this.Startup += new System.EventHandler(ThisAddIn_Startup); this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown); } #endregion } }
メインソースはこんな感じ!
Python.CreateEngine() で、 Python のエンジン作って、
Scope に対して、 SetVariable を使って、参照をがしがし。( python で言うところの、 import )
あと、どこかから Run が実行されたらコンパイルして実行する仕掛け。
動作例ですと、「Run」 ボタンですね。
これ使った場合、 Function 以下に、Excel の関数が存在していて、
Cells 以下に、各セル情報が入っているので、キー入力を捕まえてくれば、Python によるマクロも可能かも。
制作時間30分だから、とっても汚くて、実装がふざけた感じになっているけど、許してね。
みむらです。
結構 Windows 7 になって、コントロールパネルをさまよう人が多くなった気が。
とりあえず、マウスでかちかちっとやる人と、一括でやるパターン2つと3種類書いておきます。
余談ですが、私は Aero Glass 好きだったりします。
アニメーション切ると、タスクバーのプレビューを始めとする Windows 7 の機能や、見た目を保持したまま、
非常にきびきびとした動作になります。
もし宜しければぜひ: Windows Aero のアニメーションを切って高速に。
デスクトップ上で右クリックをして、「個人設定」を開く。
開いた画面の下の方の、「ベーシックテーマとハイコントラストテーマ」の中に、
「Windows 7 ベーシック」などがあるので、それをクリック。
なお、Aero Glass に戻す際は、同様にして、「Aeroテーマ」の中にあるテーマをクリックすれば戻ります。
上記の物とは違い、純粋に Aero だけを切ります。
スタートメニュー内の「コンピュータ」を右クリック –> プロパティ
システムの詳細設定を開く。
詳細設定タブのパフォーマンスの「設定」をクリック。
開いた中の、
「デスクトップコンポジションを有効にする」のチェックを外すと、 Aero Glass が取れて、
「ウィンドウとボタンに視覚スタイルを使用する」のチェックを外すと、クラッシック表示になります。
単純に、手でやる方法の2をバッチファイルでやるだけです。
管理者権限は不要です。
Aero Basic にする:
http://mimumimu.net/software/blogup/visual_aero_basic.bat
Aero Glass にする:
http://mimumimu.net/software/blogup/visual_aero_glass.bat
ではでは。
どうも。みむらです。
Windows って使ってて、遅いなーとか思ってしまうんですが、
そのものが重いんじゃなくて、視覚効果で重さを感じ取っているということが考えられます。
確かに、アニメーションがあった方が楽しいです。視覚上は。
でもそのコンピュータで何をやるんだろうと考えたとき、作業が圧倒的に早く終わった方がありがたいわけです。
作業中は只でさえイライラすることが多いです。知らず知らずのうちに。
あなたが待ち合わせで、相手を待っているとき、
同じ時間に遅れて来るにしても、歩いて来るのと、走ってくるのでは、後者の方が圧倒的に印象が良いですよね。
前者はやる気が感じられない。これと一緒。
閑話休題
というわけで、遅く感じさせるアニメーション効果をすべて落とすバッチファイルを用意しました。
対象は、Windows Aero を使っているユーザ。
パフォーマンスオプションの設定をいじくりまわすだけ。
http://mimumimu.net/software/blogup/visual_aero_fast.bat
上記URLを右クリック し、 「対象をファイルを保存」 を選び、デスクトップに保存します。
(mime を見てくれるブラウザでは、自動的にダウンロード画面に移行してくれると思います。)
このようなファイルが保存されますので、ダブルクリック。
アニメーション効果がすべて切れるので、最初は不思議な感じになりますが、
すぐに慣れます。
ただこれになれると、普通のアニメーション効果ONの状態のWindows が、
なかなかにとろっとろしたシステムに見えてきます。
多分、XPまでのユーザが、Windows 7 や Vista に移行して、遅い! と言うのは、
ハードウェアスペックの問題もありますが、こういう細かいところで、とろっとろした感じを出したのが、
どうも宜しくないんじゃないのか、と予想しています。
きびきびした Windows で作業したい方は、上記のバッチを使って、設定変更してみてはいかがでしょうか。
設定を変えると、案外 Aero Glass も高速に見えてきますよ。