テーマ:未分類(甘党)

日々、思いついたことを記録します。

フォトプリンタが、欲しくなっている。

2007年05月28日 16時12分24秒 | 新商品
家のプリンタは、9年前のバッテリ駆動可能なモバイルプリンタ「CANON BJC-50v」があるだけで、ここ数年は、すでに、稼動していない状態です。

本当に、時々しか使わなかったので、ほとんど、使っていないはずのインクのカートリッジが使えるようにするために、いろいろと、クリーニングしたりしてから、使い始めたり、また、しまうときには、きちんと、カートリッジを外して、密閉ケースを、ギューーッと閉めたりしていたのですが、それでも、カートリッジが使えなくなるので、一回が、1,000ぐらいかかってしまうという状態です。

何しろ、プリンタを取り出して、線をつないで、カートリッジをつけて、紙を設置して、それから、使う出すまでに、いろいろと試行錯誤が繰り返されるので、もはや、面倒になって、ここ数年は、使わなくなってしまっています。

この前、カメラ屋というかパソコンコーナのプリンタのところを見ていて、以前から、気になっていたフォトプリンタが気の止まって、それから、いろいろと、調べています。

フォトプリンタ比較

いろいろ考えていて、まだ、最終決定ではありませんが、今のところ、CANONの「PIXUS mini260」にしようかなぁと考えています。

最初は、インクジェット型よりは、昇華型というか、オーバーコート付のものに、心を奪われていました。BJC50vは、綺麗でないのは、古いから仕方ないににしても、何しろ、印字したものを、張っておくと、真っ白になってしまい、それから、インクジェットで印字したものは、すぐに、消えるものという不信感がありました。

それに、数年前に、子供をつれて、電気屋さんに行った時に、EPSONのデモで、その場で写真をとってくれて、その場で、プリントしてくれた写真をくれたのですが、まぁ、綺麗ですが、やはり、いつもの写真屋さんの印刷されたものと比較すると、なんとなく、綺麗でないという感じがしてしまっていて、やはり、写真は、写真屋さんに出すのが良いよねぇという感じでした。

ただ、やはり、ときどき、家にプリンタが欲しいときがあったりして、また、子供の友達の家から、どうも家のプリンタで出力したものらしい写真をいただいたりしたのを見ると、全く、問題ないほどに綺麗なので、そろそろ、フォトプリンタも良いかなぁと考えるようになっています。

PIXUS mini 260は、フォトプリンタの中で、インクジェット型で、その中で、普通のプリンタのスペックなので、それなりの画質が期待できそうです。

こんど、写真屋さんに出した写真とJPEGデータをもって、電気屋さんに行ってみようかと考えています。

いまさらですが、「梅田 望夫 (著) ウェブ進化論 本当の大変化はこれから始まる」を読んでみた

2007年05月28日 15時30分49秒 | 読書感想
以前から、読みたいなぁと思っていた本だったのですが、この前、本屋のレジの脇に平積みされていたので、ついでに、買って、やっと、読みました。

まぁ、内容は、いろいろなところで、すでに、語りつくされているものだったので、今、読んでも、新鮮味は、感じませんが、全ての内容が、このとおりに進むんだろうなぁとか、当時(といっても、出版は昨年なのですね)に、あちら側とか、Web2.0とかの概念を紹介したのは、すごいなぁというか、当時、ネットの記事とかで、読んだときに衝撃のようなものを感じたことを思い出しました。


ところで、Googleに対するMicrosoftの対抗の仕方が気になっているのですが、以前のNetscapeの頃のように、ワクワクするようなめくるめくような技術の競争みたいなことは、起こらないのでしょうか?
もしくは、私が、すでに、鈍感になっているだけで、面白みを感じなくなってしまっているだけなのでしょうかねぇ、、、。

Windows Liveとか、Virtual Earthとか、それぞれ、気になっているのですが、いまいち、触ってみる気がおきないというか、Googleの機能を使うだけで、気が済んでしまっているという感じです。

まだ、Vistaを、自分も、周りも使っていないのですが、もしかして、Vistaの検索機能とかに満足してしまったりすると、いつの間にか、Microsoftのものしか使わなくなってしまったりして、、、。

この本を読み終わったら、また、昔のように、新しい技術に注目して、ワクワクする感じを味わいたいなぁと思うようになって、なんとなく、Vistaマシンが、欲しくなってきました。

NewScheduleToCybouz3.mac実現案

2007年05月08日 00時19分41秒 | 秀丸エディタ Tips
NewScheduleToCybouz3.macで、秀丸エディタのマクロから、あべのりゆき氏が公開されているmacrodll.dllを使って、直接、InternetExplorerを操作しようとしていて、非常に難儀をしています。

Navigateで、目的の予定追加画面までは、開けるのですが、その中のフォームを調べるのために、とりあえず、OutlookのVB Editor上で、秀丸から開くURLを開くようなコードを作ってみて、デバッガ上で、フィールドを確認していきました。

これでに以下のようなところまでは、解析ができて、このVB Editor上のウォッチで、これらの変数を変更すると、ちゃんと、画面が変わってくれるところまでは、確認ができました。

SetDate.Year : IE.document.forms.Item(0).Item(8).Value
SetDate.Month : IE.document.forms.Item(0).Item(9).Value
SetDate.Day : IE.document.forms.Item(0).Item(10).Value
SetTime.Hour : IE.document.forms.Item(0).Item(11).Value
SetTime.Minute : IE.document.forms.Item(0).Item(12).Value
EndTime.Hour : IE.document.forms.Item(0).Item(13).Value
EndTime.Minute : IE.document.forms.Item(0).Item(14).Value
予定: IE.document.forms.Item(0).Item(16).Value
場所 : IE.document.forms.Item(0).Item(18).Value
メモ : IE.document.forms.Item(0).Item(19).Value

ということで、OLE_SETPROPERTYSTRなりを使って、Valueの設定をしようとしているのですが、いろいろと試しても、どうも、ちゃんと、設定ができません。


というか、ここまでできたら、もしや、このあと、VBScriptで、いろいろと引数をとって、その引数を元に、URLを生成して、IEを開いて、フォームを設定するようなスクリプトを作って、秀丸から、そのVBSを、呼び出す構造の方が良さそうということを思いついてしまいました。

この構造は、ちょっと、複雑で、配布するには、かなり、面倒そうですが、他の人への配布は、全く考えておらず、完全に、自分が便利になりたいから作るので、どうでも良いから、楽に作れる方のが良さそうです。

と、今日は、このくらいを思いついただけで、作り始めてもいません。ただ、アイデアを忘れないうちに、ブログに書いたという次第です。

sysinternalsがMSに買収されていたんですね。

2007年05月04日 23時45分47秒 | Weblog
ちょっと、びっくりしました。
先ほどのブログで、以前、さんざん、お世話になった"Sysinternals"って、まだ、あるのかなぁ?と思って、検索してみたら、“Sysinternals”のサイトが“Microsoft TechNet”へ統合、新作ツールも公開とか、Windows管理者必携、Sysinternalsでシステムを把握するを、ちょっと、見たら、MSに買収されていたんですね。

まぁ、ある意味、MSのツールより、すごいものを、作っていた方々だったので、よろしいんじゃないでしょうか、、、。(って、こんなエラそうな言えるような身分でもないですが、、、。)

Visual Studio 2005のDbmon.Exe

2007年05月04日 23時34分22秒 | 技術感想
秀丸エディタで、本格的なマクロは、初めてなので、まずは、デバッグ手法が良く分かりませんでした。

で、秀丸エディタのマクロのヘルプを見たら、debuginfoなんていう便利な機能があるじゃない。
以前、カーネルドライバ開発のデバッグのときにお世話になったOutputDebugString系ですね。ちょっと、懐かしい感じがするのですが、VS2005で、どうやったら、このデバッグ出力をひっかけられるのかを悩んで、無意味な時間をすごしてしまった。

せっかく、このPCにVS2005が入っているので、sysinternalのクラックツールみたいな怪しいものをインストールしたくなかったのですが、VC6の頃とは違い、結局、IDEを起動しただけでは、デバッグ出力がひっかけられないみたい、、、。

で、さんざん、VS2005のIDEをほじっていたのですが、結局、以下に、Debug Monitorが隠されていました。

C:Program FilesMicrosoft Visual Studio 8Common7ToolsBinwinntDbmon.Exe

まったく、もう少しで、sysinternalsとか、はたまた、VS2005以外にSDKみたいなものをインストールする羽目になるところだった、、、。

これで、秀丸エディタのマクロ開発が、かなり、便利になりました。

[秀丸エディタ TIPS]NewScheduleToCybouz3.mac作成中

2007年05月04日 23時22分21秒 | 秀丸エディタ Tips
今日は、マクロづいていて、勢い余って、以前から、切望しているサイボウズ3への新規予定追加を楽にするための秀丸エディタのマクロを作り始めたのですが、ぼちぼちしか、進みません。

今日のところは、1行目が、yyyy/m/d hh:mm hh:mm (年月日 開始 終了)の形式を、秀丸エディタで、取り込むところまでしかできませんでした。

-------------

question("サイボウズ3の「スケジュールの登録」画面を開きます。n1行目が、yyyy/m/d hh:mm hh:mm (年月日 開始 終了)の形式ですか?");
if (result == yes) {
//先頭に
gofiletop;
//SetDate.Yearの取り込み
selectword;
copy;
beginclipboardread;
$SetDate_Year = getclipboard;
//SetDate.Monthの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$SetDate_Month = getclipboard;
//SetDate.Dayの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$SetDate_Day = getclipboard;
//SetTime.Hourの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$SetTime_Hour = getclipboard;
//SetTime.Minuteの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$SetTime_Minute = getclipboard;
//EndTime.Hourの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$EndTime_Hour = getclipboard;
//EndTime.Minuteの取り込み
wordright;
selectword;
copy;
beginclipboardread;
$EndTime_Minute = getclipboard;
}
else {
//SetDate.Yearの取り込み
$SetDate_Year = str(val(year));
//SetDate.Monthの取り込み
$SetDate_Month = str(val(month));
//SetDate.Dayの取り込み
$SetDate_Day = str(val(day));
//SetTime.Hourの取り込み
$SetTime_Hour = str(val(hour));
//SetTime.Minuteの取り込み
$SetTime_Minute = str(val(minute));
//EndTime.Hourの取り込み
$EndTime_Hour = str(val(hour));
//EndTime.Minuteの取り込み
$EndTime_Minute = str(val(minute));
}

debuginfo "$SetDate_Year=" + $SetDate_Year + "x0a";
debuginfo "$SetDate_Month=" + $SetDate_Month + "x0a";
debuginfo "$SetDate_Day=" + $SetDate_Day + "x0a";
debuginfo "$SetTime_Hour=" + $SetTime_Hour + "x0a";
debuginfo "$SetTime_Minute=" + $SetTime_Minute + "x0a";
debuginfo "$EndTime_Hour=" + $EndTime_Hour + "x0a";
debuginfo "$EndTime_Minute=" + $EndTime_Minute + "x0a";

endmacro;


[秀丸エディタ TIPS] HTMLタグ削除マクロ

2007年05月04日 23時16分22秒 | 秀丸エディタ Tips
以前から、HTMLタグを削除するちょっとしたマクロを使っていましたが、今回、OutlookからHTMLメールを開くと、HTMLタグが入っているので、かなり、多用することになりました。
で、いろいろと、拡張をする必要があったので、以下のようなものになってしまいました。(いやはや、10,000文字を越えてしまったので、コメントアウト部分の008~249を省略)

-----------------

// HTMLタグの削除
// copyright (C) by 甘党のプログラマ
// 基本的には、レイアウトが崩れて見づらいが、とりあえず、テキストに変換したい場合に便利マクロ

// <style> ~ </style>の削除
// 今後も、削除漏れがあれば、この手法で削除できるはず
    gofiletop;
  while(1) {
    // まず、<style>を検索
    searchdown "<style>" , nocasesense;
    if( result )  {
      // 現在のカーソルの保持
      #top_x = x;
      #top_y = y;
      // </style>を検索して
      searchdown "</style>" , nocasesense;
      if( result )  {
        // 範囲選択後、削除
        searchdown ">";
        right;
        if( result )  {
          beginsel;
          moveto #top_x, #top_y;
          delete;
        }
      }
      else {
        break;
      }
    }
    else {
      break;
    }
  }

// <div...>と</div...>に、区切りを入れる。
    gofiletop;
  while (1) {
    searchdown "^</?div" , regular, nocasesense;
    if( result ) {
      insertline;
      insert "------------------------------------------------------------------[[br]]";
      down;
    }
    else {
      break;
    }
  }

// 改行コードの保持 ([todo]本当は、適当なコントロールコードが良いはず)
    replaceallfast "<br>" , "[[br]]" , nocasesense;

// <...>タグの削除
    replaceallfast "(<(n|[^>])+>)" , "" , regular, nocasesense;

// 空白行の削除の削除
//    replaceallfast "^ *n" , "" , regular, nocasesense;
    replaceallfast "n" , "" , regular, nocasesense;

// 元が<br>(現[[br]])を改行 ([todo]本当は、適当なコントロールコードが良いはず)
    replaceallfast "[[br]]" , "n" , nocasesense;
    if( ! result )  beep;

// 特殊文字の変換 (遅くなるので、最小限のものを有効にしたいので、変換しそこなったものに気が付いたら、コメントアウトを外すようにすると良い
  //001   &quot;  &#34;   &#x22;  """  クォーテーション  quotation mark = APL quote
  replaceallfast "&quot;" , """ ; //クォーテーション quotation mark = APL quote
//  replaceallfast "&#34;" , """ ; //クォーテーション  quotation mark = APL quote
//  replaceallfast "&#x22;" , """ ; //クォーテーション quotation mark = APL quote
  //002   &amp;   &#38;   &#x26;  "&"   アンパサンド  ampersand
  replaceallfast "&amp;" , "&" ; //アンパサンド ampersand
//  replaceallfast "&#38;" , "&" ; //アンパサンド ampersand
//  replaceallfast "&#x26;" , "&" ; //アンパサンド  ampersand
  //003   &lt;  &#60;   &#x3C;  "<"   小なり  less-than sign
  replaceallfast "&lt;" , "<" ; //小なり  less-than sign
//  replaceallfast "&#60;" , "<" ; //小なり   less-than sign
//  replaceallfast "&#x3C;" , "<" ; //小なり  less-than sign
  //004   &gt;  &#62;   &#x3E;  ">"   大なり  greater-than sign
  replaceallfast "&gt;" , ">" ; //大なり  greater-than sign
//  replaceallfast "&#62;" , ">" ; //大なり   greater-than sign
//  replaceallfast "&#x3E;" , ">" ; //大なり  greater-than sign
  //005   &nbsp;  &#160;  &#xA0;  " " 空白  no-break space = non-breaking space
  replaceallfast "&nbsp;" , " "; //空白   no-break space = non-breaking space
//  replaceallfast "&#160;", " "; //空白  no-break space = non-breaking space
//  replaceallfast "&#xA0;" , " "; //空白   no-break space = non-breaking space
//  //006   &iexcl;   &#161;  &#xA1;  "!"   inverted exclamation mark
//  replaceallfast "&iexcl;" , "!"; //  inverted exclamation mark
//  replaceallfast "&#161;", "!"; //  inverted exclamation mark
//  replaceallfast "&#xA1;" , "!"; // inverted exclamation mark
//  //007   &cent;  &#162;  &#xA2;  "¢"  セント  cent sign
//  replaceallfast "&cent;" , "¢"; //セント  cent sign
//  replaceallfast "&#162;", "¢"; //セント   cent sign
//  replaceallfast "&#xA2;" , "¢"; //セント  cent sign
// ....(省略)
//  //250   &lsaquo;  &#8249; &#x2039;  "?"   single left-pointing angle quotation mark
//  replaceallfast "&lsaquo;" , "?"; // single left-pointing angle quotation mark
//  replaceallfast "&#8249;", "?"; // single left-pointing angle quotation mark
//  replaceallfast "&#x2039;" , "?"; // single left-pointing angle quotation mark

    gofiletop;
  endmacro;


[Outlook2003 Tips] RunEditor v0.05にバージョンアップ

2007年05月04日 23時07分31秒 | Outlook Tips
なんだかなぁ、今日は、いろいろ、マクロを作ってしまいました。

で、ここのところのお気に入りの「Outlook2003のメール作成ウィンドウからエディタを起動」のOutlook VBAマクロですが、いろいろと、手を入れたら、さらに、使い勝手に、磨きがかかってきました。

今回、追加したのは、以下の機能

・HMLメールに対応。
・呼び出し時のメッセージボックスをvbYesNoCancelに変更。
・参照時には、タイトルの他に、差出人、宛先、送信日時の情報を追加。

以下が、バックアップ。


--------------------


'#####################################################
' Outlook2003のメール作成ウィンドウからエディタを起動
' copyright 2007 by 甘党のプログラマ
'#####################################################
' 【機能】
' Outlook2003のメール作成ウィンドウからエディタを起動して、そのエディタ上で編集をして、エディタの編集結果を取り込みます。
' (現状、"C:Progra~1HidemaruHidemaru.exe"で決めうち)

' 【参考】
'millefeuille氏の「マイクロソフト・インサイド・アウト」
'「Outlook Tips | HTML メールのソース編集をするマクロ」
'http://ameblo.jp/millefeuille/theme12-10000018720.html
'
'【準備】
' 1. [ツール]-[マクロ]-[Visual Basic Editor] をクリックします。
' 2. [VbaProject.OTM - ThisOutlookSession (コード)] ウィンドウに下記の VBA コードをコピーします。
' 3. CTRL+S で保存します。
' 4. Visual Basic Editor を終了します。
' 5. [ファイル]-[新規作成]-[メッセージ] をクリックし、新規メッセージの作成画面を表示します。
' 6. メッセージ作成ウィンドウのツールバーを右クリックし、[ユーザー設定] をクリックします。
' 7. [コマンド] タブをクリックし、[分類] のリストの [マクロ] をクリックします。
' 8. [コマンド] のリストの "Project1.ThisOutlookSession.HTMLEdit" をツールバーの適当なところにドラッグアンドドロップします。
' 9. ドラッグアンドドロップしたアイコンを右クリックし、名前やボタン イメージを好きなように変更します。
'
'Tatsu's room on the Web
'2005/01/14(金) Outlookのメール作成をエディタとマクロで強化し損ねる
'http://homepage3.nifty.com/Tatsu_syo/Nikki/200501.html
'
' 【履歴】
' v0.01 2007/4/12 初版 : タイトルと日時から一時ファイル名を生成、秀丸エディタの起動、編集済みの一時ファイルからの読み出しを一気に行う
' v0.02 2007/4/17 v.0.01が、原因不明の調子が悪さがあるために、RunEditorは、タイトルと.CreationTimeから一時ファイル名を生成、秀丸エディタの起動のみ。
' v0.03 2007/4/18 エディタを起動して戻ってきたら、オートリロードする機能を追加。秀丸エディタから戻ってきたら、1行目を、メールのタイトルに設定。
' v0.04 2007/4/19 秀丸エディタを起動したときに、2行目にカーソルを設定。リロードのときのMsgBoxをvbYesNoCancelに変更して、Cancelの場合には、もう一度、Activateしたときに、再ロードできるようにした。
' v0.05 2007/5/4 HMLメールに対応。呼び出し時のメッセージボックスをvbYesNoCancelに変更。参照時には、タイトルの他に、差出人、宛先、送信日時の情報を追加。
'
' 【TODO】
' ・重複起動は、後の方が、参照だけで、戻ってきたときのオートリロードができない状態にしようとしたが、どうも、最初のオートリロードの機能が間違ったところにロードしてしまう不具合があったため、重複起動機能をつぶしている。
' ・本当は、同時に複数のメールをエディタで編集できるようにしたい。
' ・Outlook側にフォーカスがあたったら、一時ファイルの存在の有無とタイムスタンプ更新をチェックして、取り込むようにしたい。
' ・もう少し、ソースコードの綺麗にしたい。(文字列が散らばっていたり、決めウチの文字列が、直接、埋まっていたり、知性がないコードになってしまっている。)
Public WithEvents myOlInspector As Inspector
Public myOlMailItem As MailItem
Public strFileName As String
Public strRunEditorTitle As String

Sub RunEditor()
strRunEditorTitle = "RunEditor v0.05"
Dim objShell As Object
Dim objFso As Object
Dim strTempFileName As String
Dim stmFile As Object

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("Scripting.FileSystemObject")
Set myOlMailItem = ActiveInspector.CurrentItem
With myOlMailItem

' 一時ファイル名を生成
MakeTempFileNameForEditor strTempFileName, objShell

If .Sent = False Then
' 編集中のウィンドウから呼び出された場合
If myOlInspector Is Nothing Then
btn = MsgBox("このウィンドウに戻ってきたときに、呼び出すエディタの編集結果をオートロードしますか?" & Chr(13) & Chr(10) & "(呼び出したエディタ上のテキストの1行目は、メールのタイトルです。)", vbYesNoCancel, "RunEditor v0.05")
If btn = vbYes Then
Set myOlInspector = ActiveInspector
ElseIf btn = vbCancel Then
GoTo finish
End If
' メールを一旦保存する
.Save
strFileName = strTempFileName
Else
'[todo]
' If MsgBox("未リロードのメール編集画面が立ち上がっているため、これで起動するエディタから戻ってきてもオートリロードできませんが、エディタを呼び出しますか?", vbYesNo, "RunEditor") = vbNo Then GoTo Finish
MsgBox ("未リロードのメール編集画面が立ち上がっているときには、RunEditorを起動しないでください。以前、起動したエディタから復帰もできなくなりました。")
Set myOlInspector = Nothing
strFileName = ""
GoTo finish
End If
Else
' 単に参照するだけの場合
If MsgBox("参照のためにエディタを呼び出しますか?", vbOKCancel, "RunEditor v0.05") <> vbOK Then GoTo finish
End If


' 一時ファイルの作成とメッセージの本文の書き出し
Set stmFile = objFso.CreateTextFile(strTempFileName, True)
stmFile.WriteLine "[タイトル] : " & .Subject

If .Sent = True Then
' 単に参照するだけの場合
stmFile.WriteLine "[送信日時] : " & .SentOn
stmFile.WriteLine "[差出人] : " & .SenderName & "(" & .SenderEmailAddress & ")"
stmFile.WriteLine "[宛先] : " & .ReceivedByName & "(" & .To & ")"
End If

' HTML形式の場合の対応
If .BodyFormat = olFormatHTML Then
stmFile.WriteLine .HTMLBody
Else
stmFile.WriteLine .Body
End If
stmFile.Close

' 秀丸エディタの起動
objShell.Run "C:Progra~1HidemaruHidemaru.exe /j2 " & strTempFileName, , False

End With
finish:
End Sub


Private Sub MakeTempFileNameForEditor(ByRef strFileName As String, objShell As Object)
Dim strSubject As String
With ActiveInspector.CurrentItem
' タイトルの取得
If .Subject <> "" Then
strSubject = .Subject
Else
strSubject = "(無題)"
End If

' タイトルと.CreationTimeから一時ファイル名を生成
strFileName = strSubject & "(" & Year(.CreationTime) & "-" & Month(.CreationTime) & "-" & Day(.CreationTime) & "-" & Hour(.CreationTime) & "-" & Minute(.CreationTime) & "-" & Second(.CreationTime) & ")" & ".txt"
strFileName = Replace(strFileName, ":", ":")
strFileName = Replace(strFileName, "<", "<")
strFileName = Replace(strFileName, ">", ">")
strFileName = Replace(strFileName, "?", "?")
strFileName = Replace(strFileName, "/", "/")
strFileName = Replace(strFileName, "", "¥")
strFileName = Replace(strFileName, "*", "*")
strFileName = objShell.ExpandEnvironmentStrings("%temp%") & strFileName
End With
End Sub


Private Sub myOlInspector_Activate()
Dim objFso As Object
Dim stmFile As Object

Set objFso = CreateObject("Scripting.FileSystemObject")

If myOlInspector Is Nothing Then
MsgBox ("RunEditorの2重起動の不具合が直っていません。リロードできません。")
Else
With myOlMailItem
btn = MsgBox("エディタで編集したテキストを取り込みますか?", vbYesNoCancel, "RunEditor v0.05")
If btn = vbYes Then
' 編集済みの一時ファイルからの読み出し
Set stmFile = objFso.OpenTextFile(strFileName, 1)
.Subject = Mid(stmFile.ReadLine, Len("[タイトル] : ") + 1, 1024)
.Body = stmFile.ReadAll
stmFile.Close

' 最悪、このファイルから作成したテキストを復帰できるように、一時ファイルは削除しない。
'objFso.DeleteFile strFileName

Set myOlInspector = Nothing
strFileName = ""
ElseIf btn = vbNo Then
Set myOlInspector = Nothing
strFileName = ""
End If
End With
End If
End Sub





[秀丸エディタ TIPS]常駐秀丸エディタ

2007年05月02日 05時29分29秒 | 秀丸エディタ Tips
そういえば、常駐秀丸エディタの機能って、非常に便利ですね。私の場合、Ctrl+Alt+Hに、ショートカットキーを割り当てています。
常駐秀丸エディタを使用する前まで、このとき、[Windows]キーで開くメニューから、[H]ぐらいで指定できるようにしておいたのですが、ちょうど、マウスカーソルと重なってしまう場合が多く、思うように、一発で起動できなくて、かなり、いらつくことが多いものでした。(秀丸エディタを起動したいときが、一番、頻繁なので)
そこで、常駐秀丸エディタの機能で、Ctrl+Alt+H,Nをタイピングで、かならず、起動できるようになって、かなり、快適になりました。

あと、クリップボードのヒストリ機能も、結構なものですね。最近は、とりあえず、クリップボードに、コピーしていって、あとから、Ctrl+Alt+H,Hで、クリップボードを取り出しすような使い方をするようになってきました。使い勝手としては、クリップボードの取出しが、多少面倒ですが、この機能を使わずに、とりあえず、メモ帳を開いて、その上に、いろいろと、ぺたぺた張っていた頃よりは、ちょっとだけ、使うには、便利です。

ただ、本格的に、プログミング中の変数名等は、やはり、メモ帳の上に、並べておいて、コピーして使うのが良さそうです。(この点では、Mifesのキーボードバッファは、秀抜の使い勝手ですね。)


あと、最近、気が付いたのですが、ファイルのヒストリを、マウスで右クリックすると、ヒストリを常駐させることができるんですね。頻繁に参照するメモのテキストは、これで、常に、ヒストリに入っているので、ちょっと、便利な感じがします。ただ、開くたびに、どこにあるのか分からないので、☆印を探すのが、かなり、面倒です。本当は、どこか、固定的にキーに割り当てられると、軽快に使えるようになるはずなのですが、惜しい、、、、。

次は、秀丸エディタから、Outlookの[仕事]を追加するマクロなんてどうでしょうか?

2007年05月02日 05時13分22秒 | 技術感想
[秀丸エディタ TIPS] アウトルックのメール作成画面の呼び出しなんていうマクロができたので、Outlookと秀丸エディタ間での連携ができるようになりました。

で、とりあえずは、秀丸エディタで作成した文章を手軽にメールで送付できるのは、かなり、便利そうですが、もっと、なにかできないかなぁと思案中です。(もはや、目的がマクロをつくることになってしまっている、、。)

ということで、何か、TODOとしてOutlookの[仕事]に追加したいメールが着たら、まずは、そのメール上で、Alt+Dで秀丸エディタに移って、適当なショートカット(Shift+Alt+Kぐらいが候補か?)で、[仕事]に追加するためのテンプレートを、ヘッダに挿入して、で、件名、期限ぐらいを設定して、適当なショートカット(Shift+Ctrl+Kぐらいが効果か?)で、Outlookの[仕事]に追加するマクロはどうだうろうか?

ただ、結構メールに添付ファイルが付いていたりするので、Alt+Dで、添付ファイルをどこかに保存して、そのパスを埋めておいて、Shift+Ctrl+Kで、添付ファイルごと、添付してしまうのも良いかもしれない。

ただ、結構、面倒そうな割には、使用頻度が低そうなマクロなので、もう少し、考えてみましまょう、、、。

[秀丸エディタ TIPS] ショートカットキー一覧のバックアップ

2007年05月01日 07時24分49秒 | 秀丸エディタ Tips
私の場合、何をするにも、まず、テキストエディタが、一番、使用頻度が高いツールで、やっと、秀丸エディタが手に馴染み始めています。(以前のAkiraエディタから乗り換えてよかったです。)

で、バックアップもかねて、今の私のキーボードショートカットの一覧です。


F1 = 秀丸エディタヘルプ
F2 = マーク行の下検索
F3 = 下候補
F6 = 分割ウィンドウ切り替え
F10 = タグジャンプ
F12 = 行番号表示/非表示
左ダブルクリック = 単語選択(全部)
左トリプルクリック = 行の選択
Shift+F2 = マーク行の上検索
Shift+F3 = 上候補
Shift+F5 = 行をコピー
Shift+F6 = BOX選択開始
Shift+F7 = 追加切り抜き
Shift+F8 = 追加コピー
Shift+F9 = BOX貼り付け
Shift+Enter = 空行挿入
Ctrl+F2 = 現在行をマーク/マーク解除
Ctrl+F4 = ファイルを閉じる
Ctrl+F6 = 次の秀丸エディタ
Ctrl+F10 = ダイレクトタグジャンプ
Ctrl+Enter = 行削除
Ctrl+Up = スクロールダウン
Ctrl+Down = スクロールアップ
Ctrl+Right = 単語右
Ctrl+Left = 単語左
Ctrl+1 = マクロ1:80桁に
Ctrl+2 = マクロ2:127桁に
Ctrl+3 = マクロ3:2000桁に
Ctrl+7 = マクロ7:段組解除
Ctrl+8 = マクロ8:2段組
Ctrl+9 = マクロ9:3段組
Ctrl+0 = マクロ10:整形マクロ
Ctrl+A = すべてを選択
Ctrl+B = 上候補
Ctrl+C = コピー
Ctrl+F = 検索...
Ctrl+G = 削除
Ctrl+H = バックスペース
Ctrl+K = 対応する括弧に移動
Ctrl+L = 対応する括弧に移動
Ctrl+N = 下候補
Ctrl+O = 記録開始/記録終了
Ctrl+P = 再生
Ctrl+R = 置換...
Ctrl+S = 上書き保存
Ctrl+T = 検索文字列の取得
Ctrl+V = 貼り付け
Ctrl+W = 単語選択(全部)
Ctrl+X = 切り抜き
Ctrl+Y = 前の操作のくり返し
Ctrl+Z = やり直し
Ctrl+[ = {に移動
Ctrl+] = }に移動
Ctrl+_ = 再変換
Ctrl+- = マクロ32:Fontを小さく
Ctrl+/ = マクロ25:行頭に/**/を挿入(&C)
Ctrl+; = マクロ31:Fontを大きく
Shift+Ctrl+F6 = 前の秀丸エディタ
Shift+Ctrl+F10 = バックタグジャンプ
Shift+Ctrl+B = 上の強調行
Shift+Ctrl+C = マクロ27:行番号付コピー(&L)
Shift+Ctrl+F = 検索(上)...
Shift+Ctrl+H = クリップボード履歴...
Shift+Ctrl+L = 指定行...
Shift+Ctrl+M = マクロ5:Outlookメール編集ウィンドウに
Shift+Ctrl+N = 下の強調行
Shift+Ctrl+R = マクロ20:改行削除&SP挿入(&R)
Shift+Ctrl+S = マクロ18:メールの挨拶とシグネチャ挿入
Shift+Ctrl+T = マクロ19:改行削除(&T)
Shift+Ctrl+Y = マクロ13:強調表示ON/OFF(&H)
Shift+Ctrl+Z = やり直しのやり直し
Shift+Ctrl+< = 単語の先頭に移動
Shift+Ctrl+> = 単語の最後に移動
Alt+F2 = マーク一覧...
Alt+F6 = 強調表示一覧の枠切り替え
Alt+F10 = tagsファイルの作成...
Alt+Right = 単語の最後に移動
Alt+Left = 単語の先頭に移動
Alt+B = マクロ34:[[br]]の連結(for wiki)
Alt+< = 単語の先頭に移動
Alt+> = 単語の最後に移動
Alt+Ctrl+Tab = メニュー4:Tab

メニュー4:Tab
2|マクロ15:タブ&2(Alt+Ctrl+Tab,2)
4|マクロ16:タブ&4(Alt+Ctrl+Tab,4)
8|マクロ17:タブ&8(Alt+Ctrl+Tab,8)

---------------------------------------
そのうち、普段使用している全マクロもバックアップをとろうと思いますが、とりあえず、今回は、ショートカットキーに割り当てているマクロだけです。


マクロ1:80桁に
custum_line80.mac
// 80桁に
config "w80";
endmacro;

マクロ2:127桁に
custum_line127.mac
// 127桁に
config "w127";
endmacro;

マクロ3:2000桁に
custum_line2000.mac
// 2000桁に
config "w2000";
endmacro;

マクロ7:段組解除
custum_xDangumi1.mac
// 段組解除
config "xDangumi:1";
endmacro;

マクロ8:2段組
custum_xDangumi2.mac
// 2段組
config "xDangumi:2";
endmacro;

マクロ9:3段組
custum_xDangumi3.mac
// 3段組
config "xDangumi:3";
endmacro;

マクロ10:整形マクロ
PluralReform.mac
※ 山紫水明氏の簡単複合整形マクロペースに拡張

マクロ32:Fontを小さく
font+.mac
// フォントサイズを大きく
// Copyriht(c)2006 MATSUMURA Toshikazu
// http://kobe.cool.ne.jp/matsut/
// http://kobe.cool.ne.jp/matsut/mail.html

マクロ25:行頭に/**/を挿入(&C)
custum_del_mark.mac
golinetop;
insert "/**/";
golinetop;
rollup;
down;

マクロ31:Fontを大きく
font-.mac
// フォントサイズを小さく
// Copyriht(c)2006 MATSUMURA Toshikazu
// http://kobe.cool.ne.jp/matsut/
// http://kobe.cool.ne.jp/matsut/mail.html

マクロ27:行番号付コピー(&L)
linenumadd2.mac
確か、秀丸エディタのマクロライブラリからダウンロードしたもの

マクロ5:Outlookメール編集ウィンドウに
SendWithOutlook.mac

マクロ20:改行削除&SP挿入(&R)
custum_delcr_cp.MAC
golineend2;
delete;
insert " ";
golineend2;

マクロ18:メールの挨拶とシグネチャ挿入
custum_sig.mac
// メールの挨拶とシグネチャ挿入
title "マクロ実行中です";

insert("★★★★の★です。r");
insert("お世話になっております。r");
insert("r");
insert("r");
insert("以上、よろしくお願いいたします。r");
insert("----r");
insert("★★★(株)★★★r");
insert("★★★部r");
insert("★★★r");
insert("★★★@★★.comr");

title 0;//タイトルバーの表示を元に戻す
endmacro;//マクロを終了

マクロ19:改行削除(&T)
custum_delcr.MAC
golineend2;
delete;

マクロ13:強調表示ON/OFF(&H)
custum_hilight_onoff.mac
// 強調表示 ON/OFFのトグル
if (hilightstate) {
config "xHilight:0";
}
else {
config "xHilight:1";
}
endmacro;//マクロを終了

マクロ34:[[br]]の連結(for wiki)
add_br_for_wiki.mac
golineend;
insert "[[br]]";
right;

マクロ15:タブ&2(Alt+Ctrl+Tab,2)
custum_tab2.mac
// TAB2
config "xTab:2 ";
endmacro;//マクロを終了

マクロ16:タブ&4(Alt+Ctrl+Tab,4)
custum_tab4.mac
// TAB4
config "xTab:4 ";
endmacro;//マクロを終了


マクロ17:タブ&8(Alt+Ctrl+Tab,8)
custum_tab8.mac
// TAB8
config "xTab:8 ";
endmacro;//マクロを終了



[秀丸エディタ TIPS] アウトルックのメール作成画面の呼び出し

2007年05月01日 06時13分02秒 | 秀丸エディタ Tips
2007-04-10 07:10:47の そのうち、作ってみたい秀丸エディタのマクロで、作ろうとしていた秀丸エディタのマクロです。
まだ、実際の業務で使用していませんが、ちょっと、手軽にメールを送信することができそうです。


// SendWithOutlook.mac
// v.0.01
// 秀丸の内容をOutlookのメール作成画面を生成する。
//
//参考
// 「h-tom's Warehouse」の「マクロで使うDLL」http://homepage3.nifty.com/_htom/macro/macro_dll.html
//
//あべのりゆき氏が公開されているmacrodll.dllが必要です。(http://www.ms.u-tokyo.ac.jp/~abenori/)
//
// Copyright by 甘党のプログラマ 2007
//

    question("Outlookのメール作成ウィンドウで、1行目をメールタイトルにしますか?");
    if (result == yes) {
        $Title = gettext(0,0,9999,0,0);
        $Body = gettext(0,1,0,linecount,0);
    }
    else {
        $Body = gettext(0,0,0,linecount,0);
    }

    loaddll hidemarudir + "macrodll.dll";

    //Set objOutlook = CreateObject("Outlook.Application")
    #objOutlook = dllfunc("OLE_INITIALIZE","Outlook.Application");
    if (#objOutlook == 0) {
        #ret = dllfunc("OLE_CLEAR");
        freedll;
        message "Outlookのオブジェクト作成に失敗";
        endmacro;
    }
//message "Outlookのオブジェクト作成に成功";

    //Set objOutlookMsg = objOutlook.CreateItem(olMailItem)   ※olMailItem=0
    #ret = dllfunc("OLE_INVOKE", #objOutlook, "CreateItem", "i", 0);
    if (#ret != 0) {
        #objOutlookMsg = dllfunc("OLE_GETLASTRESULTDISP");
    }
    if ( (#ret==0) && (#objOutlookMsg == 0) ){
        #ret = dllfunc("OLE_CLEAR");
        freedll;
        message "olMailItemのオブジェクト作成に失敗";
        endmacro;
    }
//message "olMailItemのオブジェクト作成に成功";


    //objOutlookMsg.Subject = タイトル
    #ret = dllfunc("OLE_SETPROPERTYSTR", #objOutlookMsg, "Subject",$Title);

    //objOutlookMsg.Body = 本文
    #ret = dllfunc("OLE_SETPROPERTYSTR", #objOutlookMsg, "Body",$Body);

    //objOutlookMsg.Display
    #ret = dllfunc("OLE_INVOKE",#objOutlookMsg, "Display","");

    //Set objOutlook = Nothing
    #ret = dllfunc("OLE_CLEAR");

    freedll;
    endmacro;