Site Map | HOME > Sub Menu > 選択範囲をテキスト(対象選択)の末尾に追加 概要 | 導入手順 | マクロ

選択範囲をテキスト(対象選択)の末尾に追加

■ 概要・動作イメージ・動作条件など

HowTo系のメールマガジンなど、必用な部分だけをメモとしてTextにまとめておくような場合に使用します。

◆ 動作イメージ

  1. メモとして保存したい部分を選択し、マクロを再生します。
    メモ部選択
  2. 「履歴から貼り付け」のダイアログが表示されるので、保管対象のTextを選択します。
    対象Text選択
  3. 指定したTextの最後に、件名情報等を付加しメモが追加されます。
    メモText
※直後に「TmpMacCmd1.mac」を実行すると、最後にメモを保存したtexを開くことができます。

◆ 動作条件・制限事項

▲Top

■ 導入手順

  1. メモを保存するフォルダを決めます。
  2. メモ保存用フォルダにメモ用のTextファイルを作成します。

    Textファイルの名称は自由ですが、拡張子は「.txt」としてください。(本例では「memo1.txt」「memo2.txt」「memo3.txt」としています。)またText数はいくつでもかまいませんが、9個以上なると選択時にスクロールが必要となります。

  3. 「クリップボード履歴設定(修正部)」の部分を 「2.」 で作成したメモ用のTextファイル名に修正します。

    Textファイル名は、拡張子(.txt)を含んで記述します。
    たとえばメモ用のTextファイルが Edcom.txt の場合は
    InsertStringEx( 4 , "memo1.txt" ) ; → InsertStringEx( 4 , "Edcom.txt" ) ; とします。
    本例は9個のText用ですがそれ以上の場合は、ClearClipboardとInsertStringExはペアとなるように追加してください。

  4. 「InsertStringEx」のOpenFileMessage部分のパスをメモを保存するフォルダのパスに変更します。

    メモを保存するフォルダを、仮に D:\Data\Memo とすると
    InsertStringEx( 4 , "OpenFileMessage( \"( "D:\\\\Data\\\\Memo\\\\" ) ;
    のようになります。(通常「\」は「\\」となりますが、この場合再度マクロとして実行するので\\\\となる点に注意してください。)

  5. 「2.」 でText数を増やした場合(9text以上にした場合)「条件選択されていない場合はEpilogへskip」の部分のcount数を修正します。

    Textの増加に応じ「IfStringNotFound( 38 ) ;」の数字を修正します。1Textの追加 は 2命令の増となるので 38 + 追加Text数 × 2 とします。

  6. メモ先頭の件名情報を編集したい場合は「Memo対象を加工し新規メッセージに保管 」している部分の「挿入:文字列(クリップボードの文頭)」コマンド(InsertStringEx)のパラメータを変更してください。

▲Top

■ EdMax マクロサンプル

◆ 選択範囲をテキスト(対象選択)の末尾に追加

// Start of EdMax Macro
CHAR MacroComment[] = "対象Textを選択しメモ追加保存\r\nupdate 2001/10/29"
// #----------------------* Prolog
SaveCurrentFindCondition( ) ;           //保存:検索条件
SaveCurrentAutoFormSwitch( ) ;          //保存:自動整形ON/OFF
OffAutoForm( ) ;                        //OFF:自動整形
SetFocusToEditor( ) ;                   //フォーカス・メッセージ作成画面へ
// #----------------------* Memo対象を加工し新規メッセージに保管
ClearClipboard( ) ;                     //クリップボードをクリア
CopyString( ) ;                         //コピー
InsertStringEx( 4 , "\r\n\r\n# ---------------------------------------------------------- *\r\n#    Subject: %s\r\n#      Wrote: %f\r\n#       Date: %Y/%v/%q %U:%V:%X (%z)\r\n# Message-Id: %m\r\n# ---------------------------------------------------------- *\r\n" ) ;  //挿入:文字列(クリップボードの文頭)
NewMessageSx( ) ;                       //新規メッセージ(メーラー部)
SelectAllString( ) ;                    //すべてを選択
DeleteString( ) ;                       //Delete(選択されていなかった場合に備えdelete)
PasteString( ) ;                        //貼り付け
// #----------------------* 選択されていたかチェック
FindString( FALSE , FALSE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , "----- *\\n" ) ;
KeyDown( VK_RIGHT , 0 ) ;               //→キー
FindString( TRUE , FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , "." ) ; //文字列の検索(次を検索)
IfStringNotFound( 38 ) ;                //条件選択されていない場合はEpilogへskip
  // #----------------------* クリップボード履歴設定(修正部)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , " " ) ;           //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , "Memo3.txt" ) ;   //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , "Memo2.txt" ) ;   //挿入:文字列(クリップボードの文頭)
  ClearClipboard( ) ;                   //クリップボードをクリア
  InsertStringEx( 4 , "Memo1.txt" ) ;   //挿入:文字列(クリップボードの文頭)
  KeyDown( VK_HOME , 2 ) ;              //Ctrl+Homeキー
  InsertString( "\r\n" ) ;              //キーボード入力(改行)
  KeyDown( VK_UP , 0 ) ;                //↑キー
  PasteByHistoryDialog( ) ;             //履歴から貼り付け
  FindString( FALSE , FALSE , TRUE , FALSE , FALSE , FALSE , FALSE , FALSE , FALSE , ".txt" ) ; //文字列の検索(前を検索)
  IfStringNotFound( 14 ) ;               //「履歴から貼り付け」キャンセル時はEpilogへskip
    // #----------------------* Textをopenするマクロを作成
    KeyDown( VK_HOME , 0 ) ;            //Homeキー
    KeyDown( VK_END , 1 ) ;             //Shift+Endキー
    CutString( ) ;                      //切り取り(Text名)
    DeleteString( ) ;                   //Deleteキー(改行)
InsertStringEx( 4 , "OpenFileMessage( \"D:\\\\EdMax\\\\MemoText\\\\" ) ; //挿入:文字列(クリップボードの先頭) 注1
    InsertStringEx( 5 , "\" , FALSE ) ;" ) ;    //挿入:文字列(クリップボードの最終)
    CallMacro( SubTmpMacCmd1Mk ) ;      //Openマクロ(TmpMacCmd1.mac)の作成
    SelectAllString( ) ;                //すべてを選択
    CopyString( ) ;                     //コピー(Memo対象のcopy)
    CallMacro( TmpMacCmd1.mac ) ;       //Openマクロの実行
    // #----------------------* MemoTextの文末に貼り付け
    KeyDown( VK_END , 2 ) ;             //Ctrl+Endキー
    PasteString( ) ;                    //貼り付け
    SaveMessageToFile( ) ;              //上書き保存
    CloseMessage( ) ;                   //閉じる
// #----------------------* Epilog
CloseFileNoConfirmation( ) ;            //保存確認せずに閉じる
RestoreCurrentFindCondition( ) ;        //復元:検索条件
RestoreAutoFormSwitch( ) ;              //復元:自動整形ON/OFF
// End of EdMax Macro
注1) InsertStringEx( 4 , "OpenFileMessage( \"D:\\\\EdMax\\\\MemoText\\\\" ) ;
メモ保存パスに修正します(\\\\に注意)

▲Top


Site Map | HOME > Sub Menu > 選択範囲をテキスト(対象選択)の末尾に追加 概要 | 導入手順 | マクロ