◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ プログラムメールマガジン 色彩 No.18 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆  最近は半袖で過ごすことが多くなりつつある、気温や天候が変わりやすい季節  6月でありますが体調には注意してくださいね。では、今月のラインナップです。  ■■01■■ なでしこ最新版 情報         2009/06/04 version 1.523  ■■02■■ なでしこの最新命令を使ってみよう        第12回 命令「LUAする」  ■■03■■ Word/Excel/Powrpointとの連携         第16回:Excelから「なでしこ」への手紙。PartIV  ■■04■■ GUIマスターへの道         第18回 チェック  ■■05■■ イベント情報         展示会出展 オープンソースカンファレンス2009 Kansai  ■■06■■ イベント情報                日本語プログラミング言語なでしこ 関西勉強会2009  ■■07■■ イベント情報                展示会出展 オープンソースカンファレンス2009 Nagoya  ■■08■■ ブ・レ・イ・ク         楽しんでいる!? 暑い夏に向けて ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---01-------------------------------------------------------------------  なでしこ最新版情報                  ------------------------------------------------------------------------ 最新版は以下のとおりとなっております。詳細については、公式サイトをご覧ください。 2009/06/04 version 1.523 - なでしこエディタで終了時の挙動を修正(@287)(r140) - (@30)でつけたなでしこエディタの左端クリックで「;デバッグ;」  を挿入する機能が不評なのでデフォルトオフに。(r141) - Lua言語支援 alien モジュールを追加。動的なDLLロードと関数の実行が可能 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---02-------------------------------------------------------------------  なでしこの最新命令を使ってみよう          執筆:クジラ飛行机    第12回 命令「LUAする」 ------------------------------------------------------------------------ クジラ飛行机です。このコーナーでは、毎回、最近なでしこに実装された 面白い命令を紹介します。新しい命令が皆さんに「使ってみたい!」と 思ってもらえれば幸いです。 今回ピックアップするのは、命令「LUAする」です。 この命令は、なでしこから、Luaという別の言語を実行するという破天荒な 命令となっています。 なでしこは、Borland Delphi という言語で開発しているのですが、なかなか 敷居が高く、なでしこ自身の開発に参加することは難しいものとなっていま した。しかし、この「LUAする」命令によって、Delphi で機能を拡張する よりも、より簡単になでしこを拡張できるようになりました。 使い方は、簡単です。『「(LUAのプログラム)」をLUAする』と書くだけです。 サンプルコード: === 「-- print "Hello, World!" --」をLUAする。 === Lua に関して、詳しい解説を八角研究所の技術記事として紹介して います。なでしこの拡張に興味があれば、読んでみてください。 http://www.hakkaku.net/articles/20090608-458 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---03-------------------------------------------------------------------  Word/Excel/Powrpointとの連携              執筆:粗茶    第16回:Excelから「なでしこ」への手紙。PartIV ------------------------------------------------------------------------ こんにちは。粗茶です。 Excelを中心に「なでしこ」で仕事を効率化するテクニックを紹介しています。 前回は、Excelからクリップボードを経由して「なでしこ」にデータを渡す方法について 実験してみました。 今回は、Excel VBAでクリップボードを扱う、「DataObject」について説明します。 Excel VBAのCopy,Pasteは、直接セルに対してクリップボードの値を読み書きしますが、 変数の中身や加工したデータをクリップボードに設定することはできません。 Excel VBAでクリップボードの値を設定/取得するには、「DataObject」を使います。 ただ残念なことに、「DataObject」には、Excel内部でクリップボードを扱うだけならば 何も問題がないのですが、外部のプログラムへクリップボード経由でデータを渡す時は、 全角文字(2バイト文字)が使えないという問題があります。 そこで、今回の設例は次の通りとします。 【設例】    セル「A1」に、次のような文字が入力されているとします。      A1  Hello, World !    この文字列を「なでしこ」に送信して、「なでしこ」の画面に表示するには   どうすればいいでしょうか? Excel VBAで、「DataObject」を使うためには、VBE(Visual Basic Editor)の参照設定で 「Microsoft Forms 2.0 Object Library」にチェックを入れる必要があります。 VBEのメニュー「ツール」から「参照設定」を選択し、表示されたダイアログの中から 「Microsoft Forms 2.0 Object Library」を探してチェックを付けます。 もし、「Microsoft Forms 2.0 Object Library」が見つからない場合は、 メニュー「挿入」から「ユーザーフォーム」を選択して、一度フォームを表示すれば、 参照設定のダイアログに表示されるようになります。 挿入したフォームは解放してかまいません。 これで「DataObject」が使えるようになりましたので、 VBAのプログラムを作成してみましょう。 ***** Excel VBAの処理 ***** 1.Excelのブックを新規作成します。 2.シート「Sheet1」のセル「A1」に、  「Hello, World !」と入力します。 3.VBE(Visual Basic Editor)に、次のマクロを入力します。 //ここから Sub nako文字列送信() Dim nako_data As String '「なでしこ」へ送るデータ Dim nako_exe As String '「なでしこ」の実行プログラム Dim nako_id As Double '「なでしこ」を起動したID Dim objCB As New DataObject 'クリップボード '「なでしこ」プログラム nako_exe = ActiveWorkbook.Path & "\文字列送信テスト.exe" 'データを取得して送信するデータを作成する nako_data = "nako" & Range("A1").Value 'クリップボードに送るデータをセットする objCB.SetText nako_data 'データをクリップボードへコピー objCB.PutInClipboard '「なでしこ」を起動する nako_id = Shell(nako_exe, vbNormalFocus) End Sub //ここまで 4.Excelブックを「文字列送信テスト.xlsm」(Excel2007)と  名前を付けて保存します。 「なでしこ」側のプログラムは以下の通りです。 ***** 「なでしこ」プログラムの処理 ***** 1.なでしこエディタに、次のプログラムを入力します。 //ここから クリップボードを送信文字列に代入。 送信文字列の1から4文字抜き出す。 もしそれが「nako」でなければ   「文字列送信テスト.xlsmから送信して下さい。」と言って終わる。 送信文字列の1から4文字削除して表示。 //ここまで 2.プログラムを保存後、一度実行します。 3.システムエラーがでなければ、実行結果にかかわらず、「文字列送信テスト.exe」  という名前で実行ファイルを作成します。 では、プログラムを実行してみましょう。 1.「文字列送信テスト.xlsm」と「文字列送信テスト.exe」を同じフォルダに保存します。 2.「文字列送信テスト.xlsm」を開いて、マクロ「nako文字列送信」を実行します。 「Hello, World !」と表示されたでしょうか? 「DataObject」が全角文字を扱えないのが難点ですが、 数値などを他のアプリケーションに渡すことができますので、 意外な使い道があるかもしれませんね。 次回は、Excel → 「なでしこ」 → Excelというデータの受け渡しについて 実験する予定です。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---04-------------------------------------------------------------------  GUIマスターへの道                   執筆:はやしま       第18回 チェック ------------------------------------------------------------------------ なでしこは、GUIベースのアプリが簡単に書けることも大きな魅力のひとつです が、マスターするのはなかなか大変です。 このコーナーでは、GUI部品の説明を、GUI部品を習得するためのコツも含めご紹 介したいと思います。基本姿勢は、「習うより慣れろ!」です。 今回のテーマは、「チェック」です。 チェックとは、「チェックされている(オン)」、「チェックされていない(オフ)」 を表すことができるGUI部品です。 * 「テキスト」でチェックの右側の説明文が定義できます。 * 「値」でチェック状況(オン(=1)かオフ(=0)か)が分かります。 #--------+---------+---------+---------+---------+---------+ 大阪弁モードとはチェック そのテキストは「大阪弁モード」 ツッコミボタンとはボタン そのクリックした時は〜   もし、大阪弁モードの値がオンなら     「なんでやねん!」と表示   違えば     「そんな訳ねえだろ!」と表示 #--------+---------+---------+---------+---------+---------+ 応用編:チェックの動的作成 チェックのような部品では、アンケートの選択肢のようなケースで、選択肢数が 一定ではないような場合に、候補数に応じて部品を作成したいときがあるかと思 います。そのときは、下記のように書くことができます。 #--------+---------+---------+---------+---------+---------+ 候補=「候補1 候補2 候補3」 候補を反復  候補チェック[回数]をチェックとして作成  候補チェック[回数]→テキスト=対象 #--------+---------+---------+---------+---------+---------+ 6〜7行目に、見慣れない表現が出てきましたが、これは、GUI部品が、なでしこ のグループ機能にて実現されているからです。通常であれば、「Aとはチェック」 というような形で平易に書けるようになっているのですが、反復のようなブロッ クの中や、関数の中では対応されていないため、「Aをチェックとして作成」の ように記述する必要があります。 グループ機能によるGUI部品の動的生成については、下記の公式マニュアルに説 明があります。 http://nadesi.com/doc/reference/syntax/1-5-group.htm#head23 今回は、ここまでです。それでは、また次回。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---05-------------------------------------------------------------------  イベント情報      展示会出展 オープンソースカンファレンス2009 Kansai ------------------------------------------------------------------------  去年の大好評で多くの皆さんきていただいだきました、OSC関西(京都)に  今年も出展することが決まりました。なでしこを使っているユーザーから  直接話を聞くことができたり、なでしこの状況など生で聞くことができます。  関西地方にお住まいの方などお時間がありましたらぜひ見に来てはいかがでしょう。  名称:オープンソースカンファレンス2009 Kansai - おいでやす  日程:2009年7月11日(土) 10:00〜17:00  会場:京都コンピュータ学院 京都駅前校(JR京都駅八条口より徒歩7分)[アクセスマップ]  サイト:http://www.ospn.jp/osc2009-kansai/  * 今回、7月11日(土)のみの参加となります。ご了承ください。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---06-------------------------------------------------------------------  イベント情報      日本語プログラミング言語なでしこ 関西勉強会2009 ------------------------------------------------------------------------  今年春に行われました関東勉強会に引き続き、関西でも勉強会を行います。  今回のテーマは、【 なでしこの活用例 と 自動化のアイデア 】。     日時: 2009/7/12日(日) 13:30〜17:00 (受付13:00〜)  場所: クレオ大阪北<会議室1>  テーマ: 「 なでしこの活用例 と 自動化のアイデア 」  応募: http://study.himanavi.net/2009-kansai/  内容(概要)    なでしこ入門    なでしこ初心者が知っておくべきなでしこエディタの便利機能7つ    ハッシュとグループ    ちょっとした発展など    エクセルの自動化や、ワード差し込みの実演など    韓国語学習辞典    事務の自動化のアイデア    スキル別勉強会も実施予定  など    皆さんの参加お待ちしております。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---07-------------------------------------------------------------------  イベント情報      展示会出展 オープンソースカンファレンス2009 Nagoya ------------------------------------------------------------------------  関東、関西展示会をすることは多いものの東海地方ではまだ展示会出展を  行ったことがありませんでした。  そこで、今回はなでしことして名古屋に東海地方初出展することとなりました。  名称:オープンソースカンファレンス2009 Nagoya - オープンソースの祭りだぎゃー  日程:2009年8月22日(土)10:00-18:15 (予定)  会場:名古屋市立大学山の畑キャンパス教養教育棟(地下鉄桜通線『桜山』徒歩15分)  サイト:http://www.ospn.jp/osc2009-nagoya/  今年は展示会出展として、東名阪で行うこととなります。  楽しいなでしこを実際に体験していただければと考えておりますので、  ぜひお近くの方など皆さんの参加をお待ちしております。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆ ---08-------------------------------------------------------------------  ブ・レ・イ・ク                  執筆:EZNAVI.net     楽しんでいる!? 暑い夏に向けて ------------------------------------------------------------------------ こんにちは。暑い夏へ向けてなでしこは、展示会や勉強会と 皆さんとお会いできる機会も多くなるでしょう。その際に話題になるであろう内容として、 最近追加されたLUA言語があります。 ただ、LUA言語を使えるようになって、何ができるのかという前に、 どれぐらい高速な処理ができるのかということをなでしこと比較してみたいと思います。 比較方法は以下のように行ってみます。 * なでしことLUAとそれぞれ、n + i * 1.5の計算を30000000回繰り返して   その処理時間を表示するというものです。 #Luaで計算 LUA測定前=今 LUA(`-- n=1 for i = 1, 30000000 do n = n + i * 1.5 end --`) LUA測定後=今 LUA時間=LUA測定前とLUA測定後の秒差 #なでしこで計算 なで測定前=今 n=1 30000000回 n = n + 回数 * 1.5 なで測定後=今 なで時間=なで測定前となで測定後の秒差 #結果表示 「処理時間:なでしこは{なで時間}秒、LUAは{LUA時間}秒」と表示 **パソコンがフリーズする場合がありますので使用する場合ご注意ください。 実際にパソコンの処理性能や内容により多少異なりますが、 なでしこが約57秒に対して、LUAでは約2秒ということがわかりました。 約10数倍以上早くなったということでは驚きであり、高速での計算処理などでは、 LUA言語は効率的で便利といえますね。 では、次回をお楽しみに。 ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆    ===============【プログラムメールマガジン 色彩】===============     メールマガジン登録・解除はこちら (http://mm.himanavi.net/) ◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆◇◇◆◆