PSH窓利用でOutlookのメール操作をサポートする
アプリ概要
「outlook」操作支援として「メール表示・移動・保存・管理」を快適にし、「新規、返信、転送」メールを編集してoutlookから送信することが可能です。このアプリ利用でメール操作を簡単に安全に快適にすることができると思います。ご利用頂くと幸いします。
★最新対応(V1.44):操作性改善(Help充実/usr追加改善など)
★最新対応(V1.44):操作性改善(Help充実/usr追加改善など)
- 機能概要
- 利用方法
- アプリ起動画面
- 起動表示窓の機能
- メール表示窓の機能
- 起動表示窓(操作説明)
- メール表示窓(操作説明)
- 送信メールのキーワード
- メールアドレスの略語変換ルール
- その他の便利機能
- コピペリストとサムチェック
- 「add」の機能追加
- 「usr」機能追加の方法
(1) 初級編(Webアドレス/ Winコマンド登録/ 逆引き110選など)
(2) 中級編(複数ファイル一括処理/ フォルダ圧縮など) - 関数「ssMaVBoxAdd」の利用方法
- 「Mail設定File」の説明
- アプリ機能一覧
1.機能概要→T
次に機能概要一覧を記載します。なお実際のメール処理(送信、受信、消去など)はoutlookが実施します。- 受信トレイや送信済トレイなどをBOX窓に一覧表示
- メールのテキストファイル保存⇒このアプリやexplorerで管理
- 添付ファイルの保存⇒このアプリやexplorerで管理
- 新規、返信、転送メールの作成編集
- フッタ、アドレス、送信時注意文の登録機能
- Outlookからメール送信・受信
- その他PSH関連機能(PSH起動/ スーパWeb検索など)
★履歴概要
V1.43; 操作性改善(Help/Dir操作/Webマクロ/Winフォルダなど)
V1.42: Usr機能追加(中級編)対応、操作性改善。
V1.39: Dモードソート改善、usr/acc起動改善、usr追加機能改善などで便利になります。
V1.36: 起動開始窓(Mモード/Dモード)の背景色を別々設定、DモードでexplorerからD&Drop処理、文字化けUTFファイルの変換。
V1.35: 未読mail表示、スーパWeb検索、usr機能追加、[ソート]釦、[選択行]釦もDirモードで有効。【add機能】追加でファイル操作(表示/移動/名称変更/ゴミ箱へ)、新窓Dir表示。
2.利用方法→T
下記11項のコピペリストをテキストファイルにコピー保存して[wPshOutlook21.bat]を作成ください。outlook(有償版)を起動したあと、このアプリファイルをダブルクリックすると起動します。その後[add]ファイルも次の操作で作成ください。
([Help]->[ファイルの取得(Web)]->[マウスCopy]->[アプリ更新])
([Help]->[ファイルの取得(Web)]->[マウスCopy]->[アプリ更新])
★注: Windowsメモ帳でファイル保存時、[ファイル]->[名前を付けて保存]から、ファイル名欄に[ wPshOutlook21.bat ]を入力し、文字コード[ANSI]に設定して保存ください。
★注: このアプリの動作確認は十分対応していますが、何か問題が発生した場合は自己責任での対応でお願いいたします。
操作】①outlook起動->②[wPshOutlook21.bat] ダブルクリック
3.アプリ起動画面→T
アプリを起動し[受信Box]釦を押下するとoutlook受信トレイのメール一覧を表示します。- 年/月/日 時分、名称(メールより生成)、題名の順で各メールを表示
- 各項をダブルクリックでそのメールを表示
- 行選択した状態で、選択[削除]釦を押下するとoutlook[削除済みトレイ]へ移動
![]() |
| Outlookメールサポータの起動表示窓 |
4.起動表示窓の機能→T
- [C] 釦: 表示文字の寸法を変更
- [受信Box] 釦: outlook[受信トレイ]からメール一覧を取得表示
- [送信Box] 釦: outlook[送信済トレイ]からメール一覧を取得表示
- [他] 釦: 迷惑メール/送信メールの一覧取得
- [ソート] 釦: [日時]、[名称]、[題名]の項でソートし表示
Dモード(Dir)のファイル一覧でのソートも可能([add]により) - 選択[削除] 釦: マウス選択の複数行をoutlook[削除済みトレイ]に移動
- [mailフォルダ] 釦: explorerでメールフォルダを表示
- メール作成 釦: 新規メール、保存メールから作成
- help 釦: このWebサイトページの表示、Mail設定File編集など
- [行選択]釦: (一括表示/削除/保存/振分け保存)の処理([add]により)
- [Dir操作]釦: 新規窓OPEN、mailフォルダ表示、フォルダ/ファイル移動、ゴミ箱移動、名称変更、新フォルダ作成、プロパティ表示などexplorer相当の基本操作が可能
5.メール表示窓の機能→T
起動画面のメール行をダブルクリックすると「メール表示窓」に表示します。|
|
| Outlookメールサポータのメール表示窓 |
- [C] 釦: 表示寸法を変更
- [保存] 釦: 窓表示メールをテキスト保存
- [ファイル] 釦: Windowsの読取窓、保存窓を起動
- [フォルダ] 釦: explorerをMailフォルダで起動
- [添付取得] 釦: 添付ファイルを保存
- [編集] 釦: 新規メール、転送、返信などのメール編集
- [送信前チェック] 釦: 表示メールをoutlookに送信通知する前にチェック
- [help] 釦: このWebサイトページの表示
- [Psh_Off] 釦: 表示窓内でのPSH処理ON/OFFを設定
6.起動表示窓(操作説明)→T
(6.1) [C] 釦釦押下毎に文字の寸法を変更します。( 12->13->..->24->9->10->)
※[add]追加で逆順[-]釦を追加しました。( 12->11->10...)
|
|
| 起動表示BOX窓 |
(6.2) [受信Box] 釦
この釦を押下すると、outlook[受信トレイ]から受信メール一覧を取得し表示します。
※1.現在のバージョンでは自動更新されません。手動での更新となります。
※2.[全て]釦、[未読]釦を追加しました。(V1.35)
(6.3) [送信済Box] 釦
この釦を押下すると、outlook[送信済トレイ]から送信済メール一覧を取得し表示します。
(6.4)[その他]釦
この釦押下でサブメニューが表示され「迷惑メール」「送信メール」「削除済み」の各トレイ一覧の選択表示が可能です。[未読]釦を追加しました。(V1.35)
(6.5) [ソート] 釦
この釦押下でサブメニューが表示され「名称」「題名」「日時」の各項目でソート表示することができます。なお、日時は昇順、降順の表示選択が可能です。
※1.[add]追加でDirモード(フォルダ/ファイル操作)でこの釦を有効にしました。
|
|
| ソートのサブメニュー |
下図は「題名」のメニュー項を選択しソートしたときの画面です。
|
|
| 題名でソート実行 |
(6.6) 選択[削除]釦
マウスで行選択した後、この釦を押下するとこのBOX窓から削除されます。一方、outlookでは[受信トレイ]から[削除済みトレイ]へメール移動されます。(削除ではなく移動です。実際に削除されるのはoutlookアプリが一定日時経過後に削除されます)
※1.[add]追加でDirモードでこの釦を有効にしました。フォルダ/ファイル削除時はゴミ箱へ移動します。
|
|
| 選択行の設定 |
上記画面がマウスで5行(5本のメール)を選択した後、下図画面の選択[削除]釦押下で、5本のメールを一括して、outlook[削除済みトレイ] へ移動します。
|
|
| 選択行の削除 |
(6.7) [フォルダ]釦、又は[Dir操作]釦([add]組込み時)
この釦を押下すると「$Home\ドキュメント\!MailPsh」のmailフォルダで、explorer が開きますのでフォルダやファイル操作が可能です。 また[add]機能追加でこのアプリでもmailフォルダの表示が可能で同様な操作が可能です。 これによりテキストファイルに保存したメールファイルを表示/編集/移動などの管理操作をします。 なおメール保存方法は「メール表示窓からの保存」「選択メール一括保存」「振り分け保存」があります。
また、[add]機能追加により、explorer相当の基本操作が可能となりアプリでフォルダ/ファイル移動、ゴミ箱移動、ファイル表示/起動、名称変更、新フォルダ作成などか可能です。
|
|
| explorerでメールフォルダ表示 |
|
|
| 新しい窓でメールフォルダ表示&操作(D:モード) |
|
|
| マウス右釦メニューで操作(D:モード) |
(6.8) [作成] 釦
この釦の利用説明は[メール表示窓]の[編集]釦、[ファイル]釦を参照ください。「新規メール作成」「既存メールからの作成」ができます。またWeb検索メモ(スーパWeb検索)や[usr]機能追加で色々な雑記メモの登録が可能です。
(6.9) [Help] 釦
この釦押下でサブメニューが表示され次の処理が可能です。また今後の機能追加などに利用していきます。
- [Web利用説明]:このWebサイトを表示します。
- [Mail設定File編集]:起動時の[窓幅,高さ]、文字寸法、背景色を設定します。また、作成メールにフッター文言追加やこのアプリ内でのメールアドレス登録、グループ名称の登録をすることが可能です。
- [Outlook再接続]:アプリ起動時、oUtlookが未動作のとき再接続トライします。
- [Version表示]:このアプリバージョンを起動表示窓タイトルに表示します。
- Sum値[マウスCopy => Sumチェック]:このアプリの正当性をチェックすることができます。コピペリストの上のサムチェック値をコピーしてこの釦を押下します。
- ファイル[マウスCopy =>アプリ更新]:Windowのマウスコピー機能を使いこのアプリ更新のとき利用してバージョンアップします。
- その他(今後の機能追加など):このアプリは約700行程度のPSH言語で作成しています。利用ノウハウは2000件近くありプログラム勉強にも役立つと思います。機能追加にチャレンジしてみてください。
(6.9.1) [Mail設定File]の編集 釦:
この釦を押下すると次の画面が表示されます。ここで新規メールの「フッター文」、このアプリ内で有効の「グループ略語」「メールアドレス略語」を登録可能です。
また[起動表示窓]及び[メール表示窓]の「幅,高さ」「文字寸法」「背景色」を指定可能です。 起動表示窓の設定反映は次回アプリ起動時に実施されます。ページ15項に[Mail設定File]の説明を記載します。
●起動表示窓の設定 <MailWnd>
設定は [窓幅,高さ] [文字寸法] [#背景色1] [#背景色2]の順で[ www, hhh nnn #cccccc (#dddddd)] のフォーマットで指定します。
色値は背景色設定ページを参照ください。
●メール表示窓の設定 <MailBox>
この設定は上記と同じです。次に設定例を記載します。
<MailWnd> 1120,720 12 #D1FFFE #D1FFEE
<MailBox> 980,720 13 #E5FFE4
●フッターの設定 <MailFudr>
キーワード<MailFudr>行以降から次の<MailAdr>行の上までの複数行をフッダー文として登録して利用します。メール表示窓で[編集]->[フッター追加]で表示メール下部に追加されます。次に設定例を記載します。この例では「★------」から「------★」までがフッター文として追加されます。
<MailFudr>
★-----------------★
AAAAAAAAAAAAA
BBBBBBBBBBBBB
CCCCCCCCCCCCC
★-----------------★
●メールアドレス略語の設定 <MailAdr>
- キーワード<MailAdr>行以降から最後までの行で「 [ 」「&」文字で開始の行を略語登録します。下記例では、グループ名2件( [group1]、[group2] )、メールアドレス名4件( &ryupapa1 、、、、&mama1212 )の登録例です。
- 略語とメールアドレスの間は「:」(コロン)を記載ください。略語の利用文字は英文字と数字(漢字かなもOK)とし、スペースは半角文字を利用ください。
- グループ名列の「:」(コロン)以降に、複数メールアドレスまたは略語を「;」(セミコロン)で区切って登録ください。
- 略語の登録順序はグループ名を登録後にメールアドレス名を登録ください。(上記例を参照)
<MailAdr>
[group1] : &ryupapa1 ; &mama1234 ; takata_ZZ@gmail.com
[group2] : &mama1234 ; &mama1212
&ryupapa1 : ryuXX111@gmail.com
&ryupapa2 : ryuYY222@outlook.jp
&mama1234 : mamaZZ1234@gmail.com
&mama1212 : mamaYY1212@yahoo.co.jp
なお「略語変換ルール」を下記に記載していますので、ご理解したうえで利用するようにして下さい。(エラーチェックをしていないためミス変換防止の観点から確認ください。)
また「送信チェック」窓の画面で実際のメールアドレスに変換されてますので必ず確認ください。なお「outlookアプリ側の登録メールアドレス変換」は、outlook側で行われますので確認ください。
●受信Boxメールの振分け保存 <MailDvide>
キーワード<MailDvide>行から次の行を設定することで起動表示窓で選択行のメールを一括で指定フォルダに振分け保存することができます。
- 操作方法: [受信Box]>[全て]>[マウスでメール選択]>[行選択]>[振分け保存]
- 設定内容: &&Dv ; メールアドレス(一部) ; 題名内の文字(一部) ; Dir名(必須)
- 設定例:
<MailDvide> [&&Dv];[メールアドレス];[題名内の文字];[Dir名]
&&Dv ; ryuYY2228@outlook ; 課題AAA ; dirA
&&Dv ; @gmail ; テーマBBB ; dirB
&&Dv ; ; テーマCCC ; dirC
&&Dv ; mamaZZ1234@gmail ; ; dirD
- [&&DV]は振分け保存の指定行を意味します。
- [メールアドレス]と[題名内の文字]で振分け条件を設定します。部分文字又はスペース(未指定)で設定可能です。
- [Dir名]は[mailフォルダ]からの[振分け保存フォルダ名]を指定します。
- 上記の条件指定に無いメールは[mailフォルダ]に保存されます。
7.メール表示窓(操作説明)→T
メール表示窓は計10個の表示窓がありBOX窓のタイトル欄に[0]~[9]で窓番号を表示します。夫々のBOX窓は個々に独立して処理します。そのため同時に10本のメールを表示/編集することが出来ます。(7.1) [C] 釦
各メール表示窓(10個の表示窓)において上記(1.1)項に同じです。釦押下の都度、窓内の文字寸法を変更します。
(7.2) [保存] 釦
メール表示窓の表示内容を「タイトル欄に表示のファイル名」で次のフォルダ位置にテキストファイルで保存します。保存後は、explorerを使ってファイル管理することが出来ます。なおメールに添付ファイルが有るとき「保存確認の小窓問合せ」があり[Y]キー押下でファイル保存します。
【メール保存フォルダ】 [ C:\ユーザー\ホーム\ドキュメント\!MailPsh ]
(7.3) [ファイル] 釦
この釦押下でサブメニューが表示され、Windows機能の[explorer]窓、ファイル[読取]窓、ファイル[保存]窓が利用可能です。
- [explorer]窓:メールファイル管理するとき、または、作成メールに添付ファイルを付加するとき利用します。
- ファイル[読取]窓:送信メールを保存メールなどから作成するとき、対象ファイルを[メール表示窓]に表示するとき利用します。
- ファイル[保存]窓:保存ファイル名を変更するとき利用します。添付ファイルの保存チェックは有りませんので注意ください。通常は[保存]釦を利用します。
(7.4) [フォルダ] 釦
この釦押下で、メール保存フォルダから[explorer]などのファイル管理アプリを起動してメールファイル管理や作成メールに添付ファイルを付加するときに利用します。(1.7)項を参照ください。
(7.5) [添付取得] 釦
この釦押下で、表示メールの[添付]欄に記載の添付ファイルを取得しメール保存フォルダに保存します。添付ファイルの保存名は「年月日時分+メールアドレス相当」をIDとして付加して保存します。
(7.6) [編集] 釦
この釦押下でサブメニューが表示され「新規メール」「フッター追加」「転送メール」「返信メール」「返信メール(Cc付加)」「アドレス/フッター編集」が可能です。
- [新規メール] 釦:新規メールの送信メールキーワードを付加して新規窓を開きます。
- [フッター追加] 釦:メール下部に<MailFudr>で登録した文言列を付加します。
- [転送メール] 釦:転送メール用の送信メールキーワードを付加します。
- [返信メール] 釦:返信メール用の送信メールキーワードを付加します。
- [返信メール(Cc付加)] 釦:返信(Cc)メール用の送信メールキーワードを付加します。
- [アドレス/フッター編集] 釦: 略名、メールアドレス、フッターを編集します。なお登録は、[送信前チェック]釦押下時などに毎回行います。
●[新規メール]釦、[フッター追加]釦を押下した図を次に示します。
次項の[送信メールのキーワードルール]を参考にして、[To:] [Cc:] [Bcc:] [TT:] に入力後、[送信前チェック] 釦を押下します。
●[転送メール]釦を押下したときの図を次に示します。
転送元メールの上に[To:] [Cc:] D&Drop 及び [TT: FW: 転送元メールの題名]が付加されますので新規メール作成と同様に[To:] [Cc:] に入力後、[送信前チェック] 釦を押下します。
なお転送元メールの添付ファイルは送信されません。そのため添付ファイルも転送する場合は [フォルダ]-->explorer起動-->[添付ファイルのD&Drop] の操作でこの窓に添付してください。
●[返信メール(Cc付加)] 釦を押下したときの図を次に示します。
返信元メールの上に[To:] [Cc:] D&Drop 及び [TT: RE: 転送元メールの題名] が付加されますので新規メール作成と同様に[To:] [Cc:] に入力後、[送信前チェック] 釦を押下します。添付ファイルの扱いは転送メール作成と同じです。
(7.7) [送信前チェック] 釦
【A】上記メール編集後この釦押下で、送信前テキスト画面窓【A】が表示されます。そのとき登録の略語がメールアドレスに変換されますので必ず確認ください。
【B】[送信>>]釦押下で、[宛先] [宛Cc] [宛Bcc] の確認画面【B】が表示されます。このとき次の注意内容を確認ください。
★注記★
【C】上記確認[Y]キー押下で、[題名] [内容] の確認画面【C】が表示されますので確認OKとのき[Y]キーを押下するとoutlookに対してメール送信の依頼をします。そしてoutlookからメール送信されます。なおoutlookにチェック機能搭載のときはその操作後に送信されます。
【D】また送信の「補足確認文言」を[Mail設定File]に登録することで確認画面【C】に追加表示できます。(送信確認文言の追加表示画面【D】)
<SendNote>
新規メール作成例です。( To: TT: [Msg]内容の設定、添付ファイルをD&Dropで設定)
① 登録テキスト例:
To: &ryupapa2
③ <MailAdr>に登録の「[」「&」を検索文字として全ての略語を検索して、[To:]行の&ryupapa2 をメールアドレスに変換します。
⑤次の &ryupapa1 の略語検索したとき変換します。
To: ryuYY222@gmail.outlook.jp
【file名】 wPshOutlook21.bat
★注: 最初はWindowsメモ帳を使って次のListの[Copy]釦を押し新規ファイルにコピペし、[名前を付けて保存]からファイル保存ください。
★注: メモ帳でファイル保存のとき[ファイル]->[名前を付けて保存]から、ファイル名欄に[wPshOutlook21.bat]を入力し、文字コード[ANSI]に設定して保存ください。
★注: 次からのアプリバージョンアップは、次のListの[Copy]釦を押下(コピー) し【起動表示窓】の以下操作でアプリ更新します。
起動表示窓[Help] ⇒ ファイル(マウスCopy)->(アプリ更新)
★List [wPshOutlook21.bat] Ver1.44 (List下参照)
●[転送メール]釦を押下したときの図を次に示します。
転送元メールの上に[To:] [Cc:] D&Drop 及び [TT: FW: 転送元メールの題名]が付加されますので新規メール作成と同様に[To:] [Cc:] に入力後、[送信前チェック] 釦を押下します。
なお転送元メールの添付ファイルは送信されません。そのため添付ファイルも転送する場合は [フォルダ]-->explorer起動-->[添付ファイルのD&Drop] の操作でこの窓に添付してください。
●[返信メール(Cc付加)] 釦を押下したときの図を次に示します。
返信元メールの上に[To:] [Cc:] D&Drop 及び [TT: RE: 転送元メールの題名] が付加されますので新規メール作成と同様に[To:] [Cc:] に入力後、[送信前チェック] 釦を押下します。添付ファイルの扱いは転送メール作成と同じです。
(7.7) [送信前チェック] 釦
【A】上記メール編集後この釦押下で、送信前テキスト画面窓【A】が表示されます。そのとき登録の略語がメールアドレスに変換されますので必ず確認ください。
【B】[送信>>]釦押下で、[宛先] [宛Cc] [宛Bcc] の確認画面【B】が表示されます。このとき次の注意内容を確認ください。
★注記★
★1. 利用のoutlookや[Mail設定File]に登録されていない [略名の宛先]には送信できません。
★2. 返信/転送の[ 元メール添付ファイル ]は送信されません。
【C】上記確認[Y]キー押下で、[題名] [内容] の確認画面【C】が表示されますので確認OKとのき[Y]キーを押下するとoutlookに対してメール送信の依頼をします。そしてoutlookからメール送信されます。なおoutlookにチェック機能搭載のときはその操作後に送信されます。
【D】また送信の「補足確認文言」を[Mail設定File]に登録することで確認画面【C】に追加表示できます。(送信確認文言の追加表示画面【D】)
|
|
| 送信前テキスト画面窓【A】 |
|
|
| [宛先] [宛Cc] [宛Bcc] の確認画面【B】 |
|
|
| [題名] [内容] の確認画面【C】 |
●次の文言を[Mail設定File]に登録したときの「送信確認画面【D】」を次に示します。
(<SendNote>行の下から<MailFudr>行の上までを送信時の注意文言として登録した例)
<SendNote>
★添付ファイルは20MB以下です。
exe/com/batなど起動type型のファイルは添付送信できません。
<MailFudr>
(7.8) [Help] 釦
この[Web利用説明]でメール表示窓の利用説明から表示します。
8.送信メールのキーワードルール→T
送信メールのキーワードの基本ルールを次の画面を参考に記載します。
[キーワード] ⇒ [To:] [Cc:] [Bcc:] D&Drop[添付] [AT:] [TT:]
- [To: ] 送信アドレス(必須)
- [Cc: ] CC送信アドレス
- [Bcc: ] BCC送信アドレス
- D&Drop[添付] 添付ファイル登録箇所
- [AT: ] 添付ファイルをマウスD&Dropしたとき自動設定
- [TT: ] メールの題名(必須)
[メール表示窓]の[編集]->[新規メール] 釦を押下したときの画面を次に示します。
9.メールアドレスの「略語変換ルール」→T
[Mail設定Fileの編集] 釦、または[アドレス/フッター編集] 釦から次の例に「略語登録」「メールアドレス登録」をしたケースで説明します。
① 登録テキスト例:
<MailAdr>
[group1] : &ryupapa1 ; &mama1234 ; takata_ZZ@gmail.com
[group2] : &mama1234 ; &mama1212
&ryupapa1 : ryuXX111@gmail.com
&ryupapa2 : ryuYY222@outlook.jp
&mama1234 : mamaZZ1234@gmail.com
&mama1212 : mamaYY1212@yahoo.co.jp
[group1] : &ryupapa1 ; &mama1234 ; takata_ZZ@gmail.com
[group2] : &mama1234 ; &mama1212
&ryupapa1 : ryuXX111@gmail.com
&ryupapa2 : ryuYY222@outlook.jp
&mama1234 : mamaZZ1234@gmail.com
&mama1212 : mamaYY1212@yahoo.co.jp
② メール作成で以下に編集するとします。[送信チェック] 釦押下で次の順で変換されます。
To: &ryupapa2
Cc: [group1] ; mimiYY123@outlook.jp
③ <MailAdr>に登録の「[」「&」を検索文字として全ての略語を検索して、[To:]行の&ryupapa2 をメールアドレスに変換します。To: ryuYY222@outlook.jp
Cc: [group1] ; mimiYY123@outlook.jp
④次の[Cc:]行を同様に [group1] の略語をまず変換します。
To: ryuYY222@outlook.jp
Cc: &ryupapa1; &mama1234; takata_ZZ@gmail.com; mimiYY123@outlook.jp
⑤次の &ryupapa1 の略語検索したとき変換します。
To: ryuYY222@gmail.outlook.jp
Cc: ryuXX111@gmail.com; &mama1234;takata_ZZ@gmail.com; mimiYY123@outlook.jp
⑥更に &mama1234 の略語検索したとき変換します。
To: ryuYY222@gmail.outlook.jp
Cc: ryuXX111@gmail.com; mamaZZ1234@gmail.com; takata_ZZ@gmail.com; mimiYY123@outlook.jp
上記の略語変換は複雑な処理のようですが処理プログラムは次の3行で実現しています。実際はソートやスペース処理をしていますが「略語変換ルール」の説明になります。
##★MailAdr変換(for To/Cc/Bcc)
[関数] ssMailAdrSet( $zCha ){ foreach( $cc in $szMailAdr.split("`n") ){
if( $cc.startsWith("[") -or $cc.startsWith("&") ){ $zcm=$cc.split(":") }else{continue};
$zCha=$zCha.replace( $zcm[0], $zcm[1] ) ; }; return $zCha};
<説明> 最初の [foreach] 文の [split] で [szMailAdr] を各行に分割し夫々の行を[cc]に設定します。
次の行のif文で[cc]の "[" , "&" 行を検出し、検出行を [split] で [:]文字にて前側[A]と後側[B]に分割します。
その次の行の [replace] 文で変換対象[zCha]文字列の中の文字列[A]を[B]に変換します。
アプリでは、[To]文字列、[Cc]文字列、[Bcc]文字列を個々に [zCha] に設定してこの処理を実施します。
[関数] ssMailAdrSet( $zCha ){ foreach( $cc in $szMailAdr.split("`n") ){
if( $cc.startsWith("[") -or $cc.startsWith("&") ){ $zcm=$cc.split(":") }else{continue};
$zCha=$zCha.replace( $zcm[0], $zcm[1] ) ; }; return $zCha};
<説明> 最初の [foreach] 文の [split] で [szMailAdr] を各行に分割し夫々の行を[cc]に設定します。
次の行のif文で[cc]の "[" , "&" 行を検出し、検出行を [split] で [:]文字にて前側[A]と後側[B]に分割します。
その次の行の [replace] 文で変換対象[zCha]文字列の中の文字列[A]を[B]に変換します。
アプリでは、[To]文字列、[Cc]文字列、[Bcc]文字列を個々に [zCha] に設定してこの処理を実施します。
10.その他の便利機能→T
(10.1) [Psh_off]<>[Psh_ON] 釦
このアプリは「PSH基本窓」をベースに作成しています。そのPSH処理機能の[&]と[&&&]を有効(ON)、無効[Off]に設定します。利用例を下図に示します。
次の例では[&]以下4行がPSH文です。[&]行をマウスダブルクリック[WClk]すると右側の紺色窓(PSH窓)が表示されPSH文処理をします。
(10.2) メール表示窓への添付ファイルD&Drop
explorerからこのメール表示窓に[添付ファイル]をドラッグ&ドロップ(D&Drop)して添付設定することができます。
explorerからこのメール表示窓に[添付ファイル]をドラッグ&ドロップ(D&Drop)して添付設定することができます。
(10.3) メール表示窓内の[http/https]指定行
[http/https]指定行を[WClk]でWebサイトの表示可能です。なおoutlookでhttps行は無効チェックされる場合、[&ttps:XXXXXX]マクロでWebサイト表示が可能です。
[http/https]指定行を[WClk]でWebサイトの表示可能です。なおoutlookでhttps行は無効チェックされる場合、[&ttps:XXXXXX]マクロでWebサイト表示が可能です。
(10.4) 添付ファイルの[WClk]表示
[添付取得]釦押下で添付ファイルをメール保存フォルダに保存した後、そのファイル名を[WClk]で表示可能です。
[添付取得]釦押下で添付ファイルをメール保存フォルダに保存した後、そのファイル名を[WClk]で表示可能です。
(10.5) スーパWeb検索機能
この機能は事前登録マクロ行のダブルクリック(WClk)で「スパっとWeb検索ができる」という意味です。次の[&K]マクロを初期登録しています。また[設定File]に追加登録可能です。
<MailBxWeb> 0
◎補足1: 上記3行目の例では [&KKR 時計] とメール表示窓に記載登録します。そして[Psh_ON]に設定してダブルクリックすると、[https://search.rakuten.co.jp/search/mall/時計]に変換してWeb表示アプリを起動しWebアドレス先で「時計」を検索表示します。
また[&KKR 時計 デジタル 目覚まし ]など複数の検索文字指定も可能です。
◎補足2: Webマクロ一覧窓には [ &KKR 時計 ## R楽天市場 ] の部分の一覧を表示します。この窓内で検索文字部分を編集してダブルクリックしてもWeb検索表示します。
◎補足3: [ <MailBxWeb> 1 ] の設定でメール表示窓を[Psh_ON]で初期起動します。
この機能は事前登録マクロ行のダブルクリック(WClk)で「スパっとWeb検索ができる」という意味です。次の[&K]マクロを初期登録しています。また[設定File]に追加登録可能です。
- 登録: &KKK MSN検索、&KKA Amazon検索、&KKY2 乗車時間検索、&KKCHI 地図検索など
- 操作1: [起動表示窓]>[作成]>[Webマクロ一覧]>Webマクロ窓>編集しWClk
- 操作2: [起動表示窓]>[作成]>[Web検索メモ]>編集しWClk
- 操作3: [メール表示窓]>[Help]>[Webマクロ一覧]>Webマクロ窓>編集しWClk
- 操作4: [メール表示窓]>窓内に[&Kマクロ]を記載しWClk
- &Kマクロの登録例を次に記載します。
<MailBxWeb> 0
##説明 &KKXXX ; WebAdr(@@@@:文字変換) ; &KKXX サンプル ## 説明文
&KKR ; search.rakuten.co.jp/search/mall/@@@@ ; &KKR 時計 ## R楽天市場
&KKY ; search.yahoo.co.jp/search?p=@@@@ ; &KKY テレビ ## Yahoo検索
&KKG ; www.google.co.jp/search?q=@@@@ ; &KKG テレビ ## google検索
◎補足1: 上記3行目の例では [&KKR 時計] とメール表示窓に記載登録します。そして[Psh_ON]に設定してダブルクリックすると、[https://search.rakuten.co.jp/search/mall/時計]に変換してWeb表示アプリを起動しWebアドレス先で「時計」を検索表示します。
また[&KKR 時計 デジタル 目覚まし ]など複数の検索文字指定も可能です。
◎補足2: Webマクロ一覧窓には [ &KKR 時計 ## R楽天市場 ] の部分の一覧を表示します。この窓内で検索文字部分を編集してダブルクリックしてもWeb検索表示します。
◎補足3: [ <MailBxWeb> 1 ] の設定でメール表示窓を[Psh_ON]で初期起動します。
(10.6) コピペでのバージョンアップ(bat/add)
本アプリのバージョンアップは次の操作で行います。
本アプリのバージョンアップは次の操作で行います。
- [起動表示窓]>[Help][アプリファイル/Sum値の取得]を押下。
- Webの[batリスト][Copy]を押下>[Help][ファイル⇒アプリ更新]を押下。
- 次にWebの[addリスト][Copy]を押下>[Help][ファイル⇒アプリ更新]を押下。
- また[batリスト][Sum値]の[Copy]を押下>[Help][Sum値⇒Sumチェック]で確認。
- 次に[Help][add_Sumチェック]>Web[Sum値][Copy]を押下>確認小窓[Y]で確認。
11.コピペリストとサムチェック値 →T
(11.1) [bat]コピペリスト(基本部)【file名】 wPshOutlook21.bat
★注: 最初はWindowsメモ帳を使って次のListの[Copy]釦を押し新規ファイルにコピペし、[名前を付けて保存]からファイル保存ください。
★注: メモ帳でファイル保存のとき[ファイル]->[名前を付けて保存]から、ファイル名欄に[wPshOutlook21.bat]を入力し、文字コード[ANSI]に設定して保存ください。
★注: 次からのアプリバージョンアップは、次のListの[Copy]釦を押下(コピー) し【起動表示窓】の以下操作でアプリ更新します。
起動表示窓[Help] ⇒ ファイル(マウスCopy)->(アプリ更新)
★List [wPshOutlook21.bat] Ver1.44 (List下参照)
@echo off &if not "%~0"=="%~dp0.\%~nx0" (start /min cmd /c,"%~dp0.\%~nx0" %* &exit) &rem ★DOS窓mini化 ★Psh起動
set pp=no&if not "%1"=="" set pp=%1
powershell -Exe RemoteSigned "$fln=(echo %0); $arg=(echo %pp%); $aa=(Cat $fln -Raw); $fdt=$aa.substring($aa.indexof('##'+'STT:')); Iex($fdt);"
exit; pause&exit;
##Ver1.44 wPshoutlook21.bat by ryu 2025/1120 #####################################
##
##STT: ★[PSH窓]から【outlookメールサポータ】を作成。
##ACT: outlook(有償版)起動後、このアプリを起動して利用。
##V1.44:操作性改善、1.43~:usr中級編対応、下書き、メニュ、Ver表示、usr/acc起動改善:ma窓背景色、[X]保存、open改善、文字化け変換、ANSI設定
using namespace System.Windows.Forms; Add-Type -AssemblyName System.Windows.Forms,System.Drawing; ##★m00:GUI ★DBG ★YesNo ★ssView ★menu関数
function dbg($cc){[MessageBox]::Show($cc)}; function dbc($zcc){Write-Host $zcc}; function dbt($cc){$mMain.Text="$szNmeVer $cc"};
function MsgYesNo($cc0,$cc1,$cc2){ if($cc2-eq $null){$cc2="YesNo"}; return [MessageBox]::Show($cc1,$cc0,$cc2); };
$global:fln=Convert-Path $fln; $global:szNmeVer="[Outlookサポータ V1.44]";
function ssDMnMenu($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $dmMenu.Items.AddRange($zmm); $global:szMnBas=$zmm; return $zmm};
function ssDMnMSet($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $szMnBas.DropDownItems.AddRange($zmm); return $zmm};
function ssDMnMCls($zcc){ $this.ownerItem.HideDropDown()};
$zcc="C:\winfree\Sakura\sakura.exe"; if(Test-Path $zcc){;}else{ $zcc="notepad.exe" }; $global:szEditor=$zcc;
##★m02:メイン窓/編集窓の生成 ★窓寸法(WW,HH) ★文字/寸法 ★背景色
$global:mMain=$fm=New-Object Form -Pro @{ Size="920,620";}; $szFont="BIZ UDゴシック"; $global:tBox=$mm=New-Object TextBox -Pro @{ Font="$szFont,11";
BackColor="#DDFFBB"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; AllowDrop=$true; ScrollBars=[ScrollBars]::Vertical; MaxLength=0}; $fm.Controls.Add($mm);
$global:szMnSize=10; $fm.MainMenuStrip =$global:dmMenu=New-Object MenuStrip -Pro @{ Font="$szFont,$szMnSize" }; $fm.Controls.Add($dmMenu);
##★m04:マウス[WC]操作 ★DOS処理 ★explorer処理 ★psh追加 ★画面設定 ★MainDLG表示 ★Tool窓起動
$tBox.Add_DoubleClick({ssWCAct $this}); $tBox.Add_KeyDown({ if($_.Control){ switch($_.KeyCode){ {$_ -in "n","Return"}{ssWCAct $this} }; }; });
function ssWCAct($wBx,$sw){ $global:lnn=((($wBx.Text).substring(0,$wBx.SelectionStart)).split("`n")).count-1; $zcc=$wBx.Lines[$lnn]; if($sw-eq 1){return $zcc};
$zcc=(($zcc.trim())-split"##")[0];
if( $zcc.startsWith("&") ){ foreach( $ii in (1..500) ){ $cc=$wBx.Lines[$lnn+$ii]; if($cc -eq $null){ break};
if( $cc.startsWith(";") ){ $zcc+="`n"+($cc.substring(1)).trim(); }else{ if( $cc.startsWith("#") ){ continue}; break}; }; };
if( $zcc.startsWith("&&& ")){ $zcc=$zcc.substring(4); $wBx.SelectionStart+=5; Iex($zcc); return};
if( $zcc.startsWith("& ") ){ $zcc=$zcc.substring(2).replace('"','\"'); Start powershell -Arg "-noe $zcc "; return};
if( $zcc.startsWith("&& ") ){ $zcc=$zcc.substring(3).replace('"','\"'); Start -NoN powershell -Arg "$zcc "; return};
ssWClkCmd $lnn $zcc;
}; function global:ssWClkCmd(){};##dummy
##★m06:MSG窓の文字BOX(Msg "HH,WW" Ttl Size color) ★読取DLG ★保存DLC
function MsgBox($cc,$ww,$ms,$sz,$bc){ if($ww-eq $null){$ww="720,400"}; if($ms-eq $null){$ms=""}; $global:fmMBox=$fm=New-Object Form -Pro @{Size=$ww;Text=$ms};
if($sz-eq $null){$sz="12"}; if($bc-eq $null){$bc="#F8F8F8"}; $global:mBox=$mm=New-Object TextBox -Pro @{ Font="$szFont,$sz"; Dock="Fill"; Multiline=$True;
AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical; AllowDrop=$true; BackColor=$bc}; $fm.Controls.Add($mm);
$fm.Location=""+[Cursor]::Position.X +","+[Cursor]::Position.Y;
$mm.Text=($cc.replace("`r","").replace("`n","`r`n")); $mm.SelectionStart=0; $fm.StartPosition="Manual"; $fm.Show() };
$dReadBox =New-Object OpenFileDialog -Pro @{ Title="【読取】ファイル選択"; Filter='ファイル|*.txt|全て(*.*)|*.*'; InitialDirectory=[String]$PWD };
$dSaveBox =New-Object SaveFileDialog -Pro @{ Title="【保存】ファイル設定"; Filter='ファイル|*.txt|全て(*.*)|*.*'; InitialDirectory=[String]$PWD };
##★m08:MsbBoxの指定窓型表示(cmd:/0:Boxのみ /1以上:Menu /2:Visible処理 pam:各種設定、メニュ釦設定)
function global:ssMsgBoxWnd($zcmd,$zmm,$zpam,$zmsg,$zttl){
if( $zmm-ne $null -and $zmm-ne 0){ $zmm.Text=$zmsg.replace("`r","").replace("`n","`r`n"); $zmm.SelectionStart=0; ($zmm.Parent).show(); return};
$cm=(($zpam.trim())-replace(" * "," ")).split(" "); MsgBox $zmsg $cm[0] $zttl $cm[1] $cm[2]; $fm=$fmMBox;
if($zcmd-le 1){ $fm.Add_Closing({ $_.Cancel=$True; $this.Visible=$false }); };
if($zcmd-eq 2){ $fm.Add_Closing({ $mm=ssBoximm !Wd; if( $mm.Modified ){ ssMaV2Sav($mm) };
$mm.Modified=$false; $_.Cancel=$True; $this.Visible=$false }); };
if($zcmd-ge 1){ $fm.MainMenuStrip=$global:dmMenu=New-Object MenuStrip -Pro @{ Font="$szFont,$szMnSize"}; $fm.Controls.Add($dmMenu) };
};
##★m10:outlookメールサポータ:(機能追加は【ssMaVBoxAdd 】へ
$global:szMailDir="$HOME\Documents\!MailPsh"; $global:szMailPamSet="!MailPamIni.txt"; function global:ssMaVBoxAdd($zcmd){}; ##User拡張用
$global:szMailWndPam="1120,720 13 #D1FFFE"; $global:szMailBoxPam= "980,720 12 #E5FFE4"; $global:szSendBoxPam= "980,720 10 #F5FFE4";
$global:szMAdrBoxPam="860,640 10 #E0FFE4"; $global:szMailPamSts=0;
$global:szMaMen=@(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0); $global:szMaDirGet=""; $global:szCmdBoxPam= "980,720 10 #F0F0F0";
function global:ssWebHlp($cc){ start "$szWebryuMail#_szIt$cc" }; $global:szWebryuMail="https://ryupapa008.blogspot.com/p/psh-outlookexplorer.html";
function global:ssMailAct($zcmd,$zpam){ if( (ssMaVBoxAdd $zcmd $zpam)-eq 1){ return}; switch($zcmd){
##★MIni:Outlook初期化 ★MSnd/MSdf:mail送信
!MIni{ try{ $global:Outlook=New-Object -ComObject Outlook.Application }catch{ dbg "Error No Outlook!" }; return}##_★
{$_ -in "!MSnd","!MSdf"}{ if( $Outlook-eq $null ){ ssMailAct !MIni }; if( $Outlook-eq $null ){return};
$zcc0=$zpam; $zcc1=$zcc2=$zcc3=$zcc4=$zcc5=$zcc6="";
foreach( $cc in $zcc0.split("`n") ){ $cc=$cc.trim(); if($cc.length-le 1){continue};
switch( ($cc.split(":"))[0] ){
"To"{ $zcc1=ssMailAdrSet ($cc.substring(3).trim()) }
"Cc"{ $zcc2=ssMailAdrSet ($cc.substring(3).trim()) }
"Bcc"{$zcc3=ssMailAdrSet ($cc.substring(4).trim()) }
"AT"{ $zcc4+=($cc.substring(3).trim())+"`n" }
"TT"{ $zcc5=($cc.substring(3).trim()); $zcc6=1; } }; if($zcc6-eq 1){break}; };
$zcc6=$zcc0.substring($zcc0.indexof($cc)+$cc.length+1);
if( $zcc1-eq "" -or $zcc5-eq "" ){ if( (MsgYesNo "★注意: To/TT フォーマットエラー" "Web説明を見ますか?")-eq "Yes"){ ssWebHlp "em3"}; return};
$global:szMailSend=$mm=$Outlook.CreateItem(0); $mm.To=$zcc1; $mm.CC="$zcc2"; $mm.BCC="$zcc3"; $mm.Subject=$zcc5; $mm.Body=$zcc6;
if($zcc4-ne ""){ $zcc4.split("`n")|%{ if($_.length-gt 4){ $mm.Attachments.Add( $_ ) }; }; }; if($szWinfm-ne $null){ ssMailAct !SFnm $zcc5 };
if( $zcmd-eq "!MSdf" ){ try{ $szMailSend.Send() }catch{ dbg "outlook送信エラー";}; return};
$global:szSendAdrs="[宛先] $zcc1`r`n[宛CC] $zcc2`r`n[BCC] $zcc3`r`n`r`n[添付]`r`n$zcc4";
$global:szSendDaim="[題名] $zcc5";
ssMsgBoxWnd 1 0 $szSendBoxPam ("$szSendAdrs`r`n$szSendDaim`r`n`r`n[内容]`r`n$zcc6") "送信メールチェック"; $global:szSendBox=$mBox; $mBox.ReadOnly=$true;
(ssDMnMenu "[C]").add_Click({ ssSizeColor $szSendBox }); (ssDMnMenu "Help[Web]").add_Click({ ssWebHlp "em3" });
(ssDMnMenu "[送信>>]").add_Click({ $zcc1 ="`r`n★注記★`r`n★1. 利用のoutlookや[Mail設定File]に登録されていない[略名の宛先]には`r`n送信できません。";
$zcc1+="`r`n★2. 返信/転送の[ 元メール添付ファイル ]は送信されません。"
if( ( (MsgYesNo "★注記を確認下さい【宛先】【添付】OKですか?" "$zcc1`r`n`r`n$szSendAdrs`r`n`r`nを確認ください。" )-ne "Yes" ) -or
( (MsgYesNo "【最終チェック】送信OKですか?" "$szSendDaim`r`n`r`n【内容】`r`n`r`nを確認ください。`r`n`r`n$szSendNote")-ne "Yes" ) -or
( (ssMaVBoxAdd !SChk)-eq 1) ){ dbg "キャンセル"; return}; try{ $szMailSend.Send() }catch{ dbg "outlook送信エラーで送信できません"; return};
$szSendBox.Parent.Visible=$false });
return}##_★
##★MDir:mailDir作成 ★MOpn:mail受信Box窓の生成(メニュー/マウス[WClk][UP][DOWN])
!MDir{ $zcc=$szMailDir; if( Test-Path $zcc -PathType Container ){return};
if((MsgYesNo "[Mailフォルダ]の作成" "[Home\ドキュメント]゙`nに作成OKですか?`n`n$zcc")-ne "Yes"){dbg "キャンセル"; return 1};
mkdir "$zcc"; mkdir "$zcc\!send"; mkdir "$zcc\!tmp"; return}##_★
!MOpn{ $mm=$zpam; if( (ssMailAct !MDir)-eq 1 ){return 1}; ssMailAct !PGet;
$global:szMaBox=$mm; $mm.ReadOnly=$true; $mm.WordWrap=$false; $mm.ScrollBars="Both"; $mm.Parent.Text="$szNmeVer $szMailDir";
$zcm=(($szMailWndPam.trim())-replace(" * "," ")).split(" ");
$mm.Parent.Size=$zcm[0]; $mm.Font="$szFont,"+$zcm[1]; $mm.BackColor=$global:szMaBakClr1=$cc1=$zcm[2]; $cc2=$zcm[3];
if( $cc2-ne $null -and $cc2.startsWith("#") ){}else{ $cc2="#D1FFEE" }; $global:szMaBakClr2=$cc2; $dmMenu.Font="$szFont,$szMnSize"
($szMaMen[1]=ssDMnMenu "[C]").add_Click({ ssSizeColor $szMaBox }); (ssDMnMSet "[-]").add_Click({ ssSizeColor $szMaBox 1 });
$szMaMen[2]=(ssDMnMenu "受信Box"); (ssDMnMSet "[全て]").add_Click({ ssMailAct !MGet 6 }); (ssDMnMSet "[未読]").add_Click({ ssMailAct !MGet "6;1" });
$szMaMen[4]=ssDMnMenu "その他"; (ssDMnMSet "送信済Box").add_Click({ ssMailAct !MGet 5 });
(ssDMnMSet "迷惑メール").add_Click({ ssMailAct !MGet 23 }); (ssDMnMSet "送信メール").add_Click({ ssMailAct !MGet 4 });
(ssDMnMSet "削除済み").add_Click({ ssMailAct !MGet 3 });(ssDMnMSet "削除済み(未読)").add_Click({ ssMailAct !MGet "3;1" });
(ssDMnMSet "下書き").add_Click({ ssMailAct !MGet 16 });
$szMaMen[5]=ssDMnMenu "ソート"; (ssDMnMSet "名称").add_Click({ ssMailAct !MSrt 1 }); (ssDMnMSet "題名").add_Click({ ssMailAct !MSrt 2 });
(ssDMnMSet "日時↑").add_Click({ ssMailAct !MSrt 0 }); (ssDMnMSet "日時↓").add_Click({ ssMailAct !MSrt 10 });
($szMaMen[6]=ssDMnMenu "選択行[削除]").add_Click({ ssMailAct !MDel 1 });
($szMaMen[7]=ssDMnMenu "[フォルダ]").add_Click({ ssMailAct !MExp });
$szMaMen[8]=(ssDMnMenu "作成"); (ssDMnMSet "新規メール[作成]" ).add_Click({ ssMailAct !MEdt 200 });
(ssDMnMSet "保存メール[読込]から").add_Click({ $dReadBox.InitialDirectory=$szMailDir; if( $dReadBox.ShowDialog() -ne "OK" ){return};
$zfl=$dReadBox.FileName; ssMaV2Box 3 $zfl });
$szMaMen[9]=(ssDMnMenu "Help"); ($global:szMaMenu91=ssDMnMSet "[利用説明]の表示(Web)").add_Click({ ssDMnMCls; start "$szWebryuMail" });
($global:szMaMenu92=ssDMnMSet "[起動表示窓]説明(Web)").add_Click({ ssDMnMCls; ssWebHlp "em1" });
($global:szMaMenu93=ssDMnMSet "Mail[設定File]の編集").add_Click({ ssDMnMCls; ssMailAct !MPam });
(ssDMnMSet "[設定File]の説明(Web)").add_Click({ start "$szWebryuMail#_tgItem15" });
(ssDMnMSet "[add]機能の説明(Web)").add_Click({ start "$szWebryuMail#_tgItem12" });
(ssDMnMSet "Outlook再接続").add_Click({ ssMailAct !MIni });
$mm.Add_DoubleClick({ $zcc=( ssWCAct $this 1 ).trim(); if($zcc.startsWith("&")){return}; ssMailAct !MViw $zcc });
$mm.Add_MouseDown({ if( $this.ReadOnly-eq $false){return}; $wd=$szMaBox; $p1=$wd.SelectionStart; $p0=$wd.Text.LastIndexof("`n",$p1)+1;
$p2=$wd.SelectedText.Length; $p3=$wd.Text.Indexof("`n",$p1+$p2); if($p3-lt 0){$p3=$p1+$p2}; $wd.select($p0,($p3-$p0)); });
$mm.Add_MouseUp({ if( $this.ReadOnly-eq $false){return}; $wd=$szMaBox; $p1=$wd.SelectionStart;
$p2=$wd.SelectedText.Length; $p3=$wd.Text.Indexof("`n",$p1+$p2); if($p3-lt 0){$p3=$p1+$p2}; $wd.select($p1,($p3-$p1)); });
return}##_★
##★MGet:受信BOX(6)/送信BOX(5)/下書き(16)/迷惑BOX(23)の取得;[Sno][1:UnRead];[1:Buffer]
!MGet{ if( $Outlook-eq $null ){ ssMailAct !MIni }; if( $Outlook-eq $null ){return};
$zcm=(""+$zpam).split(";"); $mm=$Outlook.Session.GetDefaultFolder($zcm[0]);
if( $zcm[1]-ne "1" ){ $mmIt=$mm.Items }else{ $mmIt=$mm.Items.Restrict("[UnRead] = true") };
$nn=0; $zcc0=""; if( $zcm[2]-ne "1" ){ $fg=$true; $global:szMaItem=@{}; $zmd=1; if($zpam-eq 16){$zmd=2}; $global:szMaBoxMod=$zmd; };
foreach( $ccc in $mmIt ){ if( $nn++ -gt 990 ){break}; $zcc1=$ccc.CreationTime.ToString("yy/MM/dd HH:mm:ss"); if($zcc1.length-lt 16){continue};
$zcc2=ssSndrAdr($ccc); if($fg){ $szMaItem[$zcc1]=$ccc; if($zcc2.length-lt 20){ $zcc2+=("x"*10) }; $zcc2=$zcc2.substring(0,20); };
$zcc3=($ccc.Subject).trim(); $zcc0+= " $zcc1|$zcc2|$zcc3`n"; };
$zcc=($zcc0.split("`n")|sort -Des)-join "`r`n";
if($fg){ $mm=$szMaBox; $mm.Text=$zcc; $mm.SelectionStart=0; $mm.BackColor=$szMaBakClr1; $global:szMaDirGet="" }else{ $global:szMailDtGet=$zcc }; return}##_★
##★MSrt:ソート(1/2/0/10) ★MNme:名称NG文字削除
!MSrt{ $zcm=$szMaBox.Text.replace("`r","").split("`n");
if($zpam-lt 10){ $zcm=( $zcm|Sort -Pro{ $_.split("|")[$zpam] } ) }else{ $zcm=( $zcm|Sort -Pro{ $_.split("|")[$zpam-10] } -D ) };
$szMaBox.Text=" "+ ( $zcm-join "`r`n").trim()+"`r`n"; return}##_★
!MNme{ $zcc=$zpam; @("/",":",".","=","?","*","<",">","`"","'","\","[","]")|%{ $zcc=$zcc.replace($_,"") }; $zcc=$zcc.replace(" ","_");
$zcc=$zcc.replace("`”","_"); if($zcc.length-gt 65){ $zcc=$zcc.substring(0,65)}; return $zcc;}##_★
!MExp{ $global:szVbMod=3; explorer $szMailDir; return}##_★
##★MViw:メール窓表示
!MViw{ if($szMaDirGet-ne ""){return}; if( ($zpam.length-lt 15)-or ($zpam.substring(17,1)-ne "|") ){return};
$zii=$zpam.substring(0,17); $ccc=$szMaItem[$zii]; $zcc=(ssMailAct !MNme $zpam); $zcm=$zcc.split("|"); $cc0=$zcm[0].substring(0,11);
$cc1=$zcm[1].substring(0,16).replace("_","-"); $zcc5=$cc1+"_"+$cc0 +"@_"; $zzfl=$cc1+"_"+$cc0 +"!_"+$zcm[2]; ##file名利用
$zcc4=""; $fg=0; if( $ccc.Attachments.Count-gt 0 ){ $fg=1; $zcc4="[添付]`n"; foreach($att in $ccc.Attachments){ $zcc4 +=$zcc5 +$att.FileName+"`n" }; $zcc4+="`n" };
if( $szMaBoxMod-eq 1){ $zcc0="$zii From: " +(ssSndrAdr($ccc)) +"`nTo_: " }else{ $zcc0="To: "};
$zcc0 += $ccc.To +"`nCc: " +$ccc.CC +"`n`nTT: " +$ccc.Subject + "`n`n" +$zcc4 +$ccc.body; $ccc.UnRead=$false;
ssMaV2Box 3 "$zzfl.txt" $zii $fg $zcc0; return}##_★
##★AGet:添付file取得(日時名称!まで) ★MDel:選択行の削除BOXへ移動
!AGet{ $ccc=$szMaItem[$szBoxid]; $zcc0=($szVbfile.split("!"))[0]; if( $ccc.Attachments.Count-le 0){ dbg "添付無し"; return};
$zcc1=$szMailDir+"\"+$zcc0+"@_"; foreach($att in $ccc.Attachments){ $att.SaveAsFile( $zcc1 +$att.FileName) }; dbg "添付取得完了"; return}##_★
!MDel{ if($szMaDirGet-ne ""){return}; if($zpam-eq 1){$zpam=$szMaBox.SelectedText};
foreach($cc in $zpam.split("`n") ){ $cc=$cc.trim(); if( ($cc.length-lt 12)-or($cc-eq $cc0) ){continue};
$ii=$cc.substring(0,17); $szMaItem[$ii].Delete(); $cc0=$cc };
$mm=$szMaBox; $mm.ReadOnly=$false; $mm.cut(); $mm.ReadOnly=$true; return}##_★
##★MEdt:メール編集 /0/1:新規 /11:転送 /12:返信 /13:返信Cc /14/15: 追加/21:fdr/22:Fl設定 ★MPam:Pam設定File編集 ★SFnm:送信File名生成
!MEdt{ if( $zpam-lt 100 ){ $mm=(ssBoximm !M2) }else{ if( $zpam-lt 200 ){ $zpam-=100; $mm=(ssBoximm !M3) }else{ $zpam=0 }; };
if( ($zpam-ne 0)-and $szVbfile.contains($szMailPamSet) ){ dbg "設定File編集中"; return};
switch($zpam){
{$_ -in 0,1}{ $zcc0="To: `r`nCc: `r`nBcc: `r`nD&Drop[添付]`r`n`r`nTT: XXX(題名)`r`n`[Msg]`r`n"; if($zpam-eq 1){ $zcc0 +="`r`n"+$mm.Text };
ssMaV2Box 3 "!send\New-Mail.txt" "00" 0 $zcc0 ; ssMailAct !SFnm "_New-Mail"; return}##_★
{$_ -in 11,12,13,14,15}{
$zcc0=$mm.Text; $cc=$mm.Lines[0]; if($cc.contains("From:")){}else{ dbg "ERROR`n`nFrom: 行がない"; return};
$zcc1="To: "; $zcc3="Cc: "; $zcc6="FW:";
if( $zpam-ge 12 ){ $zcc1+=($cc-split("From:"))[1]; $zcc6="RE:"};##返信mail
foreach( $ii in (1..20) ){ $cc=$mm.Lines[$ii];
if($cc.startsWith("To_:")){ $zcc2=$cc.substring(5) };
if($cc.startsWith("Cc:")){ $zcc3=$cc };
if($cc.startsWith("TT:")){ $zcc4=$cc.replace("TT:",$zcc6); break};
};
switch($zpam){ {$_ -in 11,12,14}{ $zcc3="Cc: "} 13{} {$_ -in 14,15}{ $zcc1+="; $zcc2" } };
$zcc333 ="$zcc1`r`n$zcc3`r`nD&Drop[添付]`r`n`r`nTT: $zcc4`r`n[Msg]`r`n`r`n`r`n`r`n#"+("-"*80)+"`r`n$zcc0"; ##$mm.SelectionStart=0;
ssMaV2Box 3 "!send\New-Mail.txt" "00" 0 $zcc333 ; ssMailAct !SFnm "_New-Mail"; return}##_★
21{ ssMailAct !PGet; $mm.Text += "`r`n$szMailFudr" ; return}##_★
22{ ssMailAct !MPam "<MailFudr>"; return}##_★
}; return}##_★
!MPam{ $global:szMailPamSts=0; $zfl="$szMailDir\$szMailPamSet";
if( Test-Path $zfl ){}else{ SC $zfl "<MailWnd> 1120,720 12 #D1FFFE #D1FFEE`r`n`r`n<MailFudr>`r`n-----`r`n-----`r`n`r`n`<MailAdr> 例 &name : mailAdr@outlook.jp`r`n" };
ssMaV2Box 3 $zfl; if($zpam-eq $null){return}; $zcc=$zpam; $wbx=$szBoxMm;
$zPos =($wbx.Text).indexof($zcc,0); if($zPos -lt 0 ){return}; $wbx.SelectionStart=$wbx.Text.length; $wbx.ScrollToCaret();
$wbx.Select($zPos, $zcc.length); $wbx.ScrollToCaret();
return}##_★
!SFnm{ $zfl="!send\SMail_"+(Get-Date -Format "yyMMdd_HHmm")+"!_"+(ssMailAct !MNme $zpam)+".txt";
$fm=$szBoxMm.Parent; $zcm=$fm.Text.split("["); $fm.Text="["+$zcm[1]+"[ "+$zfl; return}##_★
##★PGet:パラメータ取得(Sts:0=> /MailWnd /MailBox /SendNote /MailFudr /MailAdr )
!PGet{ if( $szMailPamSts-eq 1){return}; $global:szMailAdr=""; $global:szMailPamSts=1;
$zfl="$szMailDir\$szMailPamSet"; if(Test-Path $zfl){}else{return $false}; $st=0; $cc4=$cc1=$cc2=$cc3="";
foreach( $cc in (Cat $zfl) ){ $cc=$cc.trim(); if( $cc.startsWith("##")){continue};
if( $cc.startsWith("<") ){ $cm=$cc.split(">"); $cc0=$cm[0]; $cc=($cm[1]-split("##"))[0].trim();
switch($cc0){ "<MailWnd"{ $global:szMailWndPam=$cc } "<MailBox"{ $global:szMailBoxPam=$cc } "<MAdrBox"{$global:szMAdrBoxPam=$cc }
"<CmdBox"{$global:szCmdBoxPam=$cc } "<MenuSize"{$global:szMnSize=$cc } "<MailEnd"{$st=0} "<MailBxWeb"{$st=1; if($cc-eq 1){ ssPshSts 1 }; }
"<SendNote"{$st=2} "<MailFudr"{$st=3} "<MailAdr"{$st=4} "<MailOthr"{$st=5}}; continue};
switch($st){ 1{$cc4+="$cc`r`n"} 2{$cc1+="$cc`r`n"} 3{$cc2+="$cc`r`n"} 4{$cc3+="$cc`r`n"} }; };
$global:szWebB=$cc4.trim(); $global:szSendNote=$cc1.trim(); $global:szMailFudr=$cc2.trim(); $global:szMailAdr=$cc3.trim(); $zcc1=$zcc2="";
foreach($cc in ($szMailAdr.split("`n")|sort -D) ){ if($cc.contains(":")){}else{continue};
$zcm=$cc.split(":"); $cc0=$zcm[0].trim(); $cc1=$zcm[1].trim();
if($cc0.startsWith("[")){ $zcc1+=$cc0+":$cc1`n" ; continue};
if($cc.startsWith("&")-or $cc.startsWith("/o=") ){ $zcc2+=$cc0+":$cc1`n" ; continue};
}; $global:szMailAdrMm=("$zcc1$zcc1$zcc2").split(":`n"); return}##_★
##★MVMn:メール表示窓メニュ追加 ★MABxアドレスBOX
!MVMn{ (ssDMnMenu "[添付取得]").add_Click({ $mm=(ssBoximm !M1); ssMailAct !AGet !M1 });
$aa1=(ssDMnMenu "メール編集");
($aa2=ssDMnMSet "[新規メール]").add_Click({ ssMailAct !MEdt 0 }); $global:szMnBas=$aa2;
(ssDMnMSet "[+Mailヘッダ]").add_Click({ ssMailAct !MEdt 101 });
(ssDMnMSet "[フッタ 追加]").add_Click({ ssMailAct !MEdt 121 }); $global:szMnBas=$aa1;
(ssDMnMSet "[転送メール]").add_Click({ ssMailAct !MEdt 11 });
($aa2=ssDMnMSet "[返信メール]").add_Click({ ssMailAct !MEdt 12 }); $global:szMnBas=$aa2;
(ssDMnMSet " [+Cc]").add_Click({ ssMailAct !MEdt 113 });
(ssDMnMSet " [+To]").add_Click({ ssMailAct !MEdt 114 });
(ssDMnMSet " [+To+Cc]").add_Click({ ssMailAct !MEdt 115 }); $global:szMnBas=$aa1;
(ssDMnMSet "[アドレス/フッター]設定").add_Click({ ssMailAct !MEdt 22 });
(ssDMnMSet "編集Help[Web]").add_Click({ ssWebHlp "em3" });
(ssDMnMenu "[アドレス]").add_Click({ ssMailAct !MABx ; $mm=(ssBoximm !M1) });
(ssDMnMenu "[送信前チェック]").add_Click({ ssMailAct !PGet; $mm=(ssBoximm !M1); ssMailAct !MSnd $mm.Text });
$global:szMaBoxMenu9=(ssDMnMenu "Help"); (ssDMnMSet "メール表示窓説明(Web)").add_Click({ ssWebHlp "em2" });
(ssDMnMSet "Mail[設定File]の編集").add_Click({ ssMailAct !MPam "<MailAdr>" });
(ssDMnMenu $szPshStcc ).add_Click({ ssPshSts; $this.Text=$szPshStcc; });
$mm.Add_DragEnter({$_.Effect ="All";}); $mm.Add_DragDrop({ $zcc=@(([DataObject]$_.Data).GetData("FileDrop")); $zcm=$zcc.split("`n");
$zcm|%{ $zcc=$_; if(Test-Path $zcc){}else{continue}; $zcc0=$this.text; $nn=$zcc0.indexof("[添付]");
if($nn-gt 10){}else{ dbg "D&Drop[添付] 行を追加ください"; return}; $this.SelectionStart=$nn+6; $this.SelectedText="AT: $zcc`r`n" }; });
return}##_★
!MABx{ ssMailAct !PGet; (ssMsgBoxWnd 1 $szMaAdrBox $szMAdrBoxPam $szMailAdr "Mailアドレス" ); if($szMaAdrBox-ne $null){return};
$global:szMaAdrBox=$mm=$mBox; $mm.ReadOnly=$true; (ssDMnMenu "[アドレス設定]").add_Click({ ssMailAct !MPam "<MailAdr>" });
$mm.Add_DoubleClick({ $cc=((ssWCAct $this 1).split(":"))[0].trim() ; $szBoxMm.SelectedText="$cc ; " }); return}##_★
};};
##★m20:USR_ADD機能追加
function global:ssPshSts($zcmd){ $ss=$szPshSts; if($zcmd-eq $null){$ss = $ss -bxor 1}else{$ss=$zcmd}; $global:szPshSts=$ss;
if($ss-eq 0){$cc="Psh_Off"}else{$cc="Psh_ON"}; $global:szPshStcc=$cc; };
##★SenderAdr変換
function global:ssSndrAdr($ccc){ $cc0=$ccc.Sender.Address; $zcc="";
if($cc0-ne $null){ $zcc=$cc0.trim(); if( $zcc.startsWith("/o=") ){ $zcc=ssMailAdrSet($zcc) };}; return($zcc)};##_★
##★MailAdr変換(for To/Cc/Bcc)
function global:ssMailAdrSet($zCha){ $nn=$szMailAdrMm.length;
for($ii=0; $ii-lt $nn; $ii+=2 ){ $cc0=$szMailAdrMm[$ii]; $cc1=$szMailAdrMm[$ii+1];
if($cc1.length-lt 4){continue}; $zCha=$zCha.replace($cc0,$cc1); }; return $zCha};##_★
##★m22:ファイル利用NG文字の検索、★メニュ釦の$mm窓を取得
function global:ssInvChr($zcc){ if( $szinvCcm-eq $null ){ $global:szinvCcm=("<,>,|,^,/,=,`",',[,],*").split(","); };
if( $zcc.IndexOfAny($szinvCcm)-le 0 ){return $true}; return $false};##_★
##★m30:窓TTL="[n]Mail]IDD]0][ VbFile"の取得(szWinfm/szBoxMm/szVbDir/szVbfile/szVbMod/)
function global:ssBoximm($pp){ switch($pp){ !Wd{ $fm=$this} !Bx{ $fm=$this.Parent} !M1{ $fm=$this.owner.Parent}
!M2{ $fm=$this.ownerItem.owner.Parent} !M3{ $fm=$this.ownerItem.ownerItem.owner.Parent}};
$zcm=$fm.Text.split("[]"); $global:szWinfm=$fm; $ii=$zcm[1]; $cc=$zcm[2]; $global:szBoxid=$zcm[3]; $global:szfg=$zcm[4];
if( $cc-eq "Mail"){ $mod=3; $Dir=$szMailDir; $mm=$maBoxs[$ii] }else{ $mod=2; $dir="C:\tmp"; $mm=$cdBoxs[$ii]};
$global:szVbfile=$zcm[6].trim(); $global:szVbMod=$mod; $global:szVbDir=$dir; return ($global:szBoxMm=$mm) };##_★
##★m32:View maBox/cdBoxの生成(各10個の窓、メニュー、マウス[WClk][Drag&Drop]
function global:ssMaFilLoad($zfl){ if( $zfl.contains("_u.txt") ){ return (Cat "$zfl" -enc utf8 -Raw) }; return (Cat "$zfl" -Raw) };
function global:ssMaFilSave($zfl,$zdat){ if( $zfl.contains("_u.txt") ){ SC "$zfl" $zdat -enc utf8 }else{ SC "$zfl" $zdat }; };
##★m34:保存処理
function global:ssMaV2Sav($mm){ $zfl=$szVbfile; if( $zfl.contains(":\") ){}else{ $zfl="$szVbDir\$zfl"};
if( Test-Path $zfl ){$zcc0="【注意】重複しています。上書き保存しますか?"}else{$zcc0="【保存】しますか?"};
if( (MsgYesNo "$zcc0" ("[Dir] $szVbDir\`n`n[File] "+($zfl.replace("$szVbDir\","")) ) )-eq "Yes" ){ ssMaFilSave $zfl $mm.Text; $mm.Modified=$false };
if( $szfg-eq 1){ if( (MsgYesNo "【注意】" "添付ファイルがあります`n上書き保存しますか?")-eq "Yes" ){ ssMailAct !AGet !M1 }; };
};
##★m36:Mail窓生成処理★
$global:szMaBox=$null; $global:maBoxs=@(0,0,0,0,0,0,0,0,0,0,0,0); $global:cdBoxs=@(0,0,0,0,0,0,0,0,0,0,0,0); (ssPshSts 0);
function global:ssMaV2Box($zcmd,$zfln,$zpam,$fg,$zdat){
if($zpam-eq $null){ $zpam="00"; $fg="0"; $zdat=""; if( Test-Path $zfln ){ $zdat=( ssMaFilLoad $zfln ) }; };
switch($zcmd){ 2{ $zzcc0=$szCmdBoxPam; $zmod="Cmd"} 3{ $zzcc0=$szMailBoxPam; $zmod="Mail" } }; $global:szVbMod=$zcmd;
foreach($ii in (0..10) ){if($ii-eq 10){ dbg "Full"; return};
if( $zmod-eq "Mail" ){ $mm=$maBoxs[$ii] }else{ $mm=$cdBoxs[$ii] }; if( $mm-eq 0 ){break}; $fm=$mm.Parent;
if( $fm.Visible -eq $false ){ ssMsgBoxWnd 2 $mm $zzcc0 $zdat; $global:szBoxMm=$mm; $fm.Text="[$ii]$zmod]$zpam]$fg][ $zfln"; return}; };
ssMsgBoxWnd 2 $mm $zzcc0 $zdat "[$ii]$zmod]$zpam]$fg][ $zfln" ; $fm=$fmMBox; $global:szBoxMm=$mm=$mBox; $mm.AcceptsTab=$true;
if($zmod-eq "Mail"){ $maBoxs[$ii]=$mm }else{ $cdBoxs[$ii]=$mm }; $mm.WordWrap=$true; $mm.MaxLength=0;
($global:szMaBoxMenu1=ssDMnMenu "[C]").add_Click({ ssSizeColor (ssBoximm !M1) }); (ssDMnMSet "--").add_Click({ ssSizeColor (ssBoximm !M2) 1 });
($global:szMaBoxMenu2=ssDMnMenu "[保存]").add_Click({ ssMaV2Sav (ssBoximm !M1) });
$global:szMaBoxMenu3=(ssDMnMenu "ファイル"); (ssDMnMSet "[explorer]").add_Click({ $mm=(ssBoximm !M2); explorer $szVbDir });
(ssDMnMSet "[読込]窓").add_Click({ $dReadBox.InitialDirectory=$szVbDir; if( $dReadBox.ShowDialog() -ne "OK" ){return};
$mm=(ssBoximm !M2); $zfl=$dReadBox.FileName; $fm=$mm.Parent; $zcm=$fm.Text.split("]");
$zcc=$zcm[0]+"]"+$zcm[1]+"]"+$zcm[2]+"]0][ "+ ($zfl.replace("$szVbDir\","")); $fm.Text=$zcc; $mm.Text=( ssMaFilLoad $zfl ); });
(ssDMnMSet "[保存]窓(name指定)").add_Click({ $mm=(ssBoximm !M2); $dSaveBox.InitialDirectory=$szVbDir;
$dSaveBox.FileName=$szVbfile; if( $dSaveBox.ShowDialog() -eq "OK" ){ $zfl=$dSaveBox.FileName; if($zfl -ne ""){ ssMaFilSave $zfl $mm.Text }; }; });
(ssDMnMSet "[UTF8]設定(_u.txt)").add_Click({ $mm=(ssBoximm !M2); $zcc=($szWinfm.Text); if( $zcc.contains("_u.txt") ){return};
$szWinfm.Text=$zcc.replace(".txt","_u.txt"); });
(ssDMnMSet "[ANSI]設定(.txt)").add_Click({ $mm=(ssBoximm !M2); $zcc=($szWinfm.Text); $szWinfm.Text=$zcc.replace("_u.txt",".txt"); });
($global:szMaBoxMenu4=ssDMnMenu "[フォルダ]").add_Click({ $mm=(ssBoximm !M1); explorer $szVbDir });
if($zmod-eq "Mail"){ ssMailAct !MVMn "" }; ssMaVBoxAdd !MaMu $zmod $ii; ##_★MailBOXモード追加釦、★USR_ADD機能追加
$mm.Add_DoubleClick({ ssMaV2WClk }); $mm.Add_KeyDown({ if($_.Control){ switch($_.KeyCode){ {$_ -in "n","Return"}{ ssMaV2WClk } }; }; });
return; ##_★
};
##★m38:[WClk][Ctl-N][Ctl-RET]で起動
function global:ssMaV2WClk(){ $mm=(ssBoximm !Bx); $zcc=(ssWCAct $this 1).trim();
if($zcc.startsWith("&")){ if($szPshSts-eq 1){ssWCAct $this}; return};
if( $zcc.contains("http") ){ $zcc=($zcc.substring($zcc.indexOf("http")).split(">"))[0]; Iex("Start `'$zcc`' "); return};
$zcc=($zcc-split("##"))[0].trim(); $zfl=$szVbfile;
if( $zfl.contains(":\") ){ $zcc=(split-Path $zfl -par)+"\"+$zcc }else{ $zcc="$szVbDir\$zcc"}; if( ssInvChr $zcc ){}else{return};
if( Test-Path $zcc ){}else{ if( $szfg-eq 1 ){ dbg "[添付取得]ください" }else{ dbg "名称無し`r`n$zcc" }; return};
if( Test-Path $zcc -PathType Container ){ explorer $zcc }else{ Start -Non cmd -Arg "/c `"`"$zcc`"`" " }; return;
};
##★m40:【outlookサポータ】追加関数
function ssSizeColor($ww,$fg){ $dd=$ww.Font.Size; if($fg-eq $null){$dd++}else{$dd--}; if($dd-gt 22){$dd=9}; if($dd-lt 9){$dd=22}; $ww.Font="$szFont,$dd" };
##★PS1ファイル半自動VerUP(マウスこぴー⇒MsgBoxに表示->Ver確認OK->BackUP->画面入替->[File保存])
function ssPrgVrUp($zzfl,$zln){
$zcc00=((GCB)-join "`r`n").trim()+"`r`n"; $zToolDir=Split-Path $zzfl -Par; $zfl0=Split-Path $zzfl -Lea;
if( $zcc00.startsWith("@echo off") -or $zcc00.startsWith("##Ver") ){}else{ dbg "★更新ファイル全体をマウスコピーください"; return};
do{ MsgBox $zcc00 "780,540" "[ファイル]更新" 8 "#E5F2FE"; $mm=$mBox; $mm.WordWrap=$false;
if( $mm.Lines[$zln].startsWith("##Ver") ){}else{ if( $mm.Lines[0].startsWith("##Ver") ){ $zln=0 }else{ dbg "Verエラー";break};};
$zcm=$mm.Lines[$zln].split(" "); $zvr21=$zcm[0].replace("#",""); $zfl2=$zcm[1].trim(); $zcc24=$zcm[3].trim();##[ryu]
if( ($zfl2.substring(0,12)-eq $zfl0.substring(0,12))-and ($zcc24 -eq "ryu" ) ){}else{ dbg "★当該ファイルは処理不可"; break};
$zfl="$zToolDir\$zfl2";
if( Test-Path $zfl ){ $zccm=(cat $zfl); $zvr11=(($zccm[$zln]).split(" "))[0].replace("#","")
if( $zvr11.startsWith("Ver")-and $zvr21.startsWith("Ver") ){;}else{ dbg "★VerがNG"; break};
}else{ $zvr11="Ver000";};
$zBakDir=$zToolDir+"\BakPsh"; $zflbak=("$zfl2"+"_$zvr11").replace(".","_")+".txt";
$zcc3="`n[File名]`n$zfl2`n`n[現在] $zvr11 ---> [更新] $zvr21";
if( (MsgYesNo "MSG" "[★]更新のとき[Y]を押下`n`n$zcc3`n`n[BakUP_Dir] $zBakDir`n`n[File] $zflbak")-ne "Yes" ){ break};
if( Test-Path $zBakDir -PathType Container){;}else{ New-Item $zBakDir -ItemType Directory };
if( Test-Path $zfl){ Copy-Item $zfl "$zBakDir\$zflbak" -Force }; SC $zfl $zcc00 -Force;
break}while(0); $mm.Parent.Visible=$false;
};
##★m42:メール受信BOXの表示設定(窓設定、追加釦)
$mm=$tBox; if( (ssMailAct !MOpn $mm)-eq 1){return}; $mm.Text="`r`n`r`n 【Outlookを起動し [受信Box]釦を押す】"; $mm.SelectionStart=0;
($global:szMaMenu95=ssDMnMSet "Version表示").add_Click({ ssDMnMCls; dbt ("[Dir] $szMailDir [Apl] "+(Split-Path $fln -Lea)) }); $aa=(ssDMnMSet "---");
(ssDMnMSet "アプリファイル/Sum値の取得(Web)").add_Click({ ssWebHlp "em11" }); $dmMenu.Font="$szFont,$szMnSize"
(ssDMnMSet "ファイル[マウスCopy]⇒アプリ更新").add_Click({ ssPrgVrUp $fln 4 }); $aa=(ssDMnMSet "---"); ##4+1行目(fln)
(ssDMnMSet "Sum値[マウスCopy]⇒Sumチェック").add_Click({ if( ((Get-FileHash $fln).Hash)-eq (GCB) ){ dbg "アプリSum OK"}else{ dbg "NG`r`nSum値をWebからクリップコピーください"} });
##★m50:機能追加( add/ usr/) ★アプリ窓表示
$zcc=$fln.replace(".bat",""); $global:fladd=($zcc+"_add.ps1"); $global:flusr=($zcc+"_usr.ps1"); $global:flacc=($zcc+"_acc.ps1");
if( Test-Path $fladd ){. $fladd}; ( $global:szTimer0=New-Object Timer -Pro @{Interval=200} ).Start();
$szTimer0.Add_Tick({ $this.stop(); if( Test-Path $flusr ){. $flusr}; if( Test-Path $flacc ){. $flacc}; });
$mMain.ShowDialog();
##Ver1.05--by ryu------------------------------------------------------
<履歴>
V1.44: 操作性改善(Help充実/usr追加改善)
V1.43: 操作性改善(Help/Dir操作/Webマクロ/設定File移動/Tree/Winフォルダ/Web指定)
V1.42: 操作性改善、1.41: usr中級編対応、Dir名入力表示、行番号移動など。
V1.39:下書き追加、メニュ/Ver表示/usr&acc起動の改善
V1.44: 操作性改善(Help充実/usr追加改善)
V1.43: 操作性改善(Help/Dir操作/Webマクロ/設定File移動/Tree/Winフォルダ/Web指定)
V1.42: 操作性改善、1.41: usr中級編対応、Dir名入力表示、行番号移動など。
V1.39:下書き追加、メニュ/Ver表示/usr&acc起動の改善
(11.2) [bat]サムチェック値(Sum値)
次のSum値をマウスコピーして[Help]->[Sum値マウスCopy⇒Sumチェック]を押下する。
[Dir操作][新しい窓Dir表示]押下で新たにこのアプリを起動し [mailフォルダ(Dir)] を表示します。
<フォルダ/ファイル操作>
<Dir操作/マウス右釦>メニューからの操作
③【起動表示窓】の [ツール] ⇒ [検索窓] 次に検索機能について記載します。
この釦押下で次の検索窓が表示されます。マウス文字設定のときは [Get] 釦を押下します。
[Top] 釦押下で最上位の検索文字にマウスを移動します。[検索] 釦押下毎に検索文字にマウスが移動します。
※【メール表示窓】にも [help]⇒[検索窓] があり夫々のメール表示窓で文字検索が可能です。
( MenuSet 8 "!tmp\!雑記メモ1" )
(13.3)ステップ2(チョットした機能追加の方法)##★ツールへ追加登録[12]
●補足(usr[再Losd]釦の利用)
この釦を押下すると再度[usr]ファイルが起動登録するため[usr]ファイルをデバッグするときに利用します。 ところが上記の各メニューも何度も登録されます。そのため各メニュー登録は1回だけにする例を以下に記載します。(<説明> if文を使い2回目以降は未登録にする。)
if($szUsrSts-eq $null){ $global:szUsrSts=1;
##★メール表示窓、★右釦に追加
##★add_Mail処理
(15.2.1) <MailBox>メール表示窓の設定
(15.2.2) <MAdrBox>メールアドレス窓の設定
(15.3) <MailPshAct> メール表示窓で[Psh_ON]設定で、PSH短文処理を登録した例
(15.4) <MailDvide> 受信メールの振分け保存設定で利用の設定
(15.5)<MailBxWeb> Web検索マクロの登録、[Psh_ON]設定でWeb検索可能です。
次のフォーマットで登録します。[メール表示窓]->[help]->[Webマクロ一覧]で表示可能です。
(15.6) <SendNote> メール送信時のチェック小窓に表示される文言の登録
(15.7) <MailFudr> メール作成時に挿入可能なフッタの登録
(15.8) <MailAdr> メールアドレス、グループの登録(2重登録まで)
次のSum値をマウスコピーして[Help]->[Sum値マウスCopy⇒Sumチェック]を押下する。
A7941CE2C61EEDEFD388256BB2F7629D40BF2BFAB0E8BA58267184B93096DAB6
12.[add] の機能追加→T
(12.1) 追加機能[add]
この機能追加で「フォルダ表示/作成/移動/コピー」「ファイル表示/移動/コピー/起動」「検索窓」「行選択処理」など沢山の機能を追加します。これによりファイル操作やフォルダ操作が簡単便利になります。
注: 基本部をV1.41以上にアプリ更新する必要があります。
注: 基本部をV1.41以上にアプリ更新する必要があります。
- メール行選択 ( 表示(max10)、削除、保存、振分け保存 )
- Dir操作 ( 複数窓の表示、Dir表示(mailDir/ 逆順/ 月日/ 子展開/ explorer/ ゴミ箱/ ) )
- Dir操作 ( 複数行を設定し/ 選択Dirへ移動/ ゴミ箱へ移動/ 名称変更/ フォルダの作成/ )
- Dir/File操作 ( マウスWClkでDir移動/ File表示/ [../]で上位Dirへ移動/ )
- ツール( 検索窓/ addサムチェック/未読周期チェック/usr編集/メニュー追加/ )
- マウス右釦処理 ( Dir操作の機能/ Winメモ張/ 文字列コピー/添付ファイル設定など )
- メール表示窓[help](Webマクロ検索/)
(12.2) 組込み方法
基本部において次のアプリ更新操作で組込みファイル「wPshOutlook21_add.ps1」が作成されます。次回の基本部起動時に組み込まれます。
次のリストの[Copy]釦を押下し【起動表示窓】の以下操作で組込みます。
起動表示窓[Help] ⇒ ファイル(マウスCopy)->(アプリ更新)
(12.3) [add]コピペList [ wPshOutlook21_add.ps1 ] (Ver 1.24)
##Ver1.24 wPshOutlook21_add.ps1 by ryu 2025/1120 ----
##★★outlookサポータappへのコマンド追加 by ryu
##
##FNC: M:列選択処理(Mail表示/削除/保存/振分け保存/
##FNC: 検索窓、addSumChk、複数窓、マウス右釦、D:DIR処理(Dir表示/展開表示/設定->移動/作成/ゴミ箱/
##V1.24:操作性改善、V1.23~:usr中級編対応、sort改善、usr追加改善、文字化け変換、DirモードD&Drop、マウス右釦、Web検索、Web翻訳、
$dFderBox =New-Object FolderBrowserDialog -Pro @{ ShowNewFolderButton = $false; };
function global:ssDMnMSetSb($cc,$fg){ if($fg-eq 1){$global:szMnBas=$aa1}; return($global:szMnBas=ssDMnMSet $cc) };
function global:ssDMnMSetAa($cc){ $global:szMnBas=$aa1; return(ssDMnMSet $cc) };
function global:ssWebHelp($cc){ start "$szWebryu/p/psh-outlookexplorer.html#_szIt$cc" }; $global:szWebryu="https://ryupapa008.blogspot.com";
##★m10:Help釦へ追加
(ssDMnMSet "add_Sum値(Web)->サムチェック").add_Click({ ssDirCmp !CkAd }); $aa=(ssDMnMSet "----" );
##★[行選択]釦
$szMaMen[10]=$global:aa1=(ssDMnMenu "行選択");
(ssDMnMSet "M:[表示](max10)").add_Click({ ssMailAct2 !MCmp 0 });
(ssDMnMSet "M:一括[削除]" ).add_Click({ ssMailAct2 !MCmp 1 });
(ssDMnMSet "M:一括[保存]" ).add_Click({ ssMailAct2 !MCmp 2 });
(ssDMnMSetSb "M:振分け[保存]" ).add_Click({ ssMailAct2 !PDvd; ssMailAct2 !MCmp 4 });
(ssDMnMSet "振分け設定" ).add_Click({ ssMailAct !MPam "<MailDvide>" });
##★[Dir操作]釦
$szMaMen[11]=$global:aa1=(ssDMnMenu "Dir操作"); $global:szMaDirGet="";
(ssDMnMSetSb "新しい窓Dir表示(Mail)").add_Click({ ssDirCmpBtCls !DNew "/Dir" }); (ssDMnMSet "日時↓" ).add_Click({ ssDirCmp !DNew "/Dir1" });
(ssDMnMSetAa "Dir表示(Mail)" ).add_Click({ ssDirCmp !DGet 1 $szMailDir });
(ssDMnMSet "Dir表示(Mail日時↓)" ).add_Click({ ssDirCmp !DGet 10 $szMailDir });
(ssDMnMSet "D: 容量表示ON<>OFF").add_Click({ $dd=$szDGetVol; if($dd-eq 1){$dd=0}else{$dd=1}; $global:szDGetVol=$dd; ssDirCmp !DGet $szDGetMod $szMaDirGet });
(ssDMnMSet "D: Dir表示(逆順)" ).add_Click({ ssDirCmp !DGet 2 $szMaDirGet });
(ssDMnMSet "D: Dir表示(月日順)").add_Click({ ssDirCmp !DGet 3 $szMaDirGet });
(ssDMnMSetSb "D: Dir表示(子展開)").add_Click({ ssDirCmpBtCls !DGet 5 $szMaDirGet });
(ssDMnMSet "Tree表示").add_Click({ ssDirCmp !DTre }); (ssDMnMSet "(Dirのみ)").add_Click({ ssDirCmp !DTre 1 });
(ssDMnMSetAa "D: Dir(explorer表示)" ).add_Click({ explorer $szMaDirGet }); $aa=(ssDMnMSet "----" );
(ssDMnMSet "D: 選択行を[設定]し").add_Click({ ssDirCmp !DSet });
(ssDMnMSet "D: [設定]を選択Dirへ移動").add_Click({ ssDirCmp !DMov 11 });
(ssDMnMSet "D: [設定]を選択DirへCopy").add_Click({ ssDirCmp !DMov 12 });
(ssDMnMSet "D: 新規フォルダの作成(Dir)" ).add_Click({ ssDirCmp !DMak });
(ssDMnMSet "D: 選択行を[ゴミ箱]へ" ).add_Click({ ssDirCmp !DDel }); $aa=(ssDMnMSet "----" );
(ssDMnMSet "Dirを入力し表示").add_Click({ if( ($cc=(ssVBKeyInp "入力[移動フォルダ]" "C:\XXXXXX" $szMailDir))-eq "" ){return};
if(Test-Path $cc -PathType Container ){ ssDirCmp !DGet 1 $cc }else{ dbg "$ccが無い" };});
(ssDMnMSet "Winフォルダから表示").add_Click({ if( $dFderBox.ShowDialog()-eq [DialogResult]::OK ){ ssDirCmp !DGet 1 $dFderBox.SelectedPath }; });
(ssDMnMSet "[ゴミ箱]を表示" ).add_Click({ explorer shell:RecycleBinFolder });
##★[ツール1]釦
$szMaMen[12]=$global:aa1=(ssDMnMenu "ツール1");
(ssDMnMSet "add機能説明(Web)").add_Click({ ssWebHelp "em12" });
(ssDMnMSet "[検索窓]").add_Click({ ssMailAct2 !Find });
(ssDMnMSetSb "[未読]周期チェック").add_Click({ ssMaTimerMido 1 });(ssDMnMSet "チェックOFF" ).add_Click({ ssMaTimerMido 0 });
(ssDMnMSetAa "クリップ>Google翻訳").add_Click({ $cc=$szKKhon.replace("@@@@",(GCB)); start ("https://$cc"); });
(ssDMnMSetSb "usr[編集]").add_Click({ if((ssVBKeyInp "[PSW入力]" "編集PSW" "")-eq "0000" ){ ssMaV2Box 3 $flusr } });
(ssDMnMSet "再設定" ).add_Click({ . $flusr });
(ssDMnMSetAa "usr機能説明(Web)").add_Click({ ssWebHelp "em13" });
$aa=(ssDMnMSet "----" );
##★[Web説明]釦
$global:szMnBas=$szMaMenu91;
(ssDMnMSet "M:Mailモード").add_Click({ssWebHelp "Add"}); (ssDMnMSet "D:Dirモード" ).add_Click({ssWebHelp "Mdr"});
(ssDMnMSet "アドレス変換" ).add_Click({ssWebHelp "em09"});(ssDMnMSet "機能一覧" ).add_Click({ssWebHelp "em16"});
(ssDMnMSet "初級編" ).add_Click({start "$szWebryu/2025/11/blog-post.html" })
(ssDMnMSet "逆引き110選").add_Click({start "$szWebryu/2025/11/blog-post.html#_szItGaku" })
(ssDMnMSet "中級編" ).add_Click({start "$szWebryu/2025/11/blog-post_9.html" });
$global:szMnBas=$szMaMenu92;
(ssDMnMSet "アドレス" ).add_Click({ssWebHelp "Adr"});(ssDMnMSet "フッタ" ).add_Click({ssWebHelp "Fdr"});
(ssDMnMSet "送信注記").add_Click({ssWebHelp "Snd"});(ssDMnMSet "振分保存").add_Click({ssWebHelp "Dvd"});
(ssDMnMSet "Webマクロ" ).add_Click({ssWebHelp "Mac"});(ssDMnMSet "アプリ更新").add_Click({ssWebHelp "Vup"});
$global:szMnBas=$szMaMenu93;
(ssDMnMSet "アドレス" ).add_Click({ssMailAct !MPam "<MailAdr>"}); (ssDMnMSet "フッタ").add_Click({ssMailAct !MPam "<MailFudr>"});
(ssDMnMSet "送信注").add_Click({ssMailAct !MPam "<SendNote>"});(ssDMnMSet "振分け").add_Click({ssMailAct !MPam "<MailDvide>"});
(ssDMnMSet "Webマクロ").add_Click({ssMailAct !MPam "<MailBxWeb>"});
$global:szMnBas=$szMaMenu95;
(ssDMnMSet "add[編集]").add_Click({ if((ssVBKeyInp "[PSW入力]" "編集PSW" "")-eq "999999" ){ & $szEditor $fladd } });
(ssDMnMSet "acc[編集]").add_Click({ if((ssVBKeyInp "[PSW入力]" "編集PSW" "")-eq "909090" ){ & $szEditor $flacc } });
##(ssDMnMSet "man[編集]").add_Click({ if((ssVBKeyInp "[PSW入力]" "編集PSW" "")-eq "990099" ){ & $szEditor $fln } });
##★m20:マウス右釦(起動表示窓)
function ssRbtMenu($cc){ ($global:zzSrp=$mm=New-Object ToolStripMenuItem).Text=$cc; $aa=$conMenu.Items.Add($mm); return $mm };
function ssRbtMSet($cc){ ($mm=New-Object ToolStripMenuItem).Text=$cc; $aa=$zzSrp.DropDownItems.Add($mm); return $mm };
$szMaBox.ContextMenuStrip =$global:conMenu=New-object ContextMenuStrip -Pro @{ Font="$szFont,$szMnSize" };
(ssRbtMenu "D:選択行を[設定]し").add_Click({ ssDirCmpMaBtCls !DSet });
(ssRbtMenu "D: 同上(確認_OFF)").add_Click({ ssDirCmp !DSet 1 });
(ssRbtMenu "D:[設定]を選択Dirへ移動").add_Click({ ssDirCmp !DMov 11 });
(ssRbtMenu "D:[設定]を選択DirへCopy").add_Click({ ssDirCmp !DMov 12 }); $global:szRbtMenu1=(ssRbtMenu "----" );
(ssRbtMenu "D:名称の変更" ).add_Click({ ssDirCmp !DChg });
(ssRbtMenu "D:新規フォルダの作成(Dir)" ).add_Click({ ssDirCmp !DMak }); (ssRbtMSet "新規ファイル" ).add_Click({ ssDirCmp !DMak 1});
(ssRbtMenu "D:選択行を[ゴミ箱]へ" ).add_Click({ ssDirCmp !DDel });
(ssRbtMenu "D:Dir(explorer)" ).add_Click({ explorer $szMaDirGet });
(ssRbtMenu "D:Winメモ張で[開く]").add_Click({ ssDirCmpMaBtCls !Wmem }); (ssRbtMSet "Editor").add_Click({ ssDirCmp !Wedt });
(ssRbtMSet "行番号表示" ).add_Click({ ssDirCmp !Wnum }); (ssRbtMSet "文字化け変換(UTF)" ).add_Click({ ssDirCmp !DUTF });
(ssRbtMenu "D:ファイルの複製(cp)" ).add_Click({ ssDirCmp !DCpp });
(ssRbtMenu "D:[プロパティ]" ).add_Click({ ssDirCmp !DPro }); $global:szRbtMenu5=(ssRbtMenu "----" )
(ssRbtMenu "Dir表示(Mail)" ).add_Click({ ssDirCmp !DGet 1 $szMailDir });
(ssRbtMenu "文字選択<>行選択").add_Click({ $mm=$szMaBox; if($mm.ReadOnly-eq $false){$fg=$true}else{$fg=$false}; $mm.ReadOnly=$fg });
(ssRbtMenu "文字列の[コピー]").add_Click({ $szMaBox.Copy() });
##★D&Dropコピー
$mm=$szMaBox; $mm.Add_DragEnter({$_.Effect ="All";}); $mm.Add_DragDrop({ if($szMaDirGet-eq ""){return}; $zcc=@(([DataObject]$_.Data).GetData("FileDrop"));
$zcm=$zcc.split("`n"); $zcm|%{ $zcc1=Split-Path $_ -Lea; $zcc10="$szMaDirGet\$zcc1"; (ssDFCopyMove $_ $zcc10); $szMaBox.Text+="$zcc1`r`n" }; });
function global:ssDFCopyMove($zcc1,$zcc2){ $zcc1=$zcc1.trim(); $zcc2=$zcc2.trim(); if( Test-Path $zcc1 ){;}else{return};
if( Test-Path $zcc2 ){ if((MsgYesNo "★注意★" "重複してます。上書きOKですか?(Y/N)`r`n`r`n$zcc2")-ne "Yes"){return}; };
$zcc="Copy `"$zcc1`" `"$zcc2`" -Recurse -Force"; Iex($zcc); ##dbc $zcc;
};
##★m22:文字検索DLG窓
$szSchFont="メイリオ,10"; $global:szfindPos=0; $global:szSchWnd=$tBox;
$global:fmSch=New-Object Form -Pro @{ Text="【検索Box】"; Size="530,108"; MaximizeBox=$False; MinimizeBox=$false; AutoSizeMode="GrowAndShrink"; Topmost=$True;};
$fmSch.Add_Closing({ $_.Cancel=$True; $this.Visible=$false; if( $szSchWnd-eq $tBox){ $tBox.ReadOnly=$true}; });
##★入力BOX生成 ##★釦2[Get] ##★釦0[Top] ##★釦1[検索]
$global:szSchBox1=New-Object TextBox -Pro @{ Font=$szSchFont; Location="10,2" ; Size="500,16" };
function ssSchBtn($pm0,$pm1,$pm2){ $zob=New-Object Button -Pro @{ Text=$pm0; Location=$pm1; Size=$pm2; Font=$szSchFont }; return $zob };
( $szSchBtn2 =ssSchBtn "【Get】" "10,34" "80,30" ).Add_Click({ $szSchBox1.Text=$szSchWnd.SelectedText });
( $szSchBtn0 =ssSchBtn "【Top】" "330,34" "80,30" ).Add_Click({ $aa=ssSchFind 0 $szSchWnd });
( $szSchBtn1 =ssSchBtn "【検索】" "420,34" "80,30" ).Add_Click({ $aa=ssSchFind 1 $szSchWnd });
$fmSch.Controls.AddRange(@($szSchBox1, $szSchBtn0, $szSchBtn1, $szSchBtn2));
$fmSch.Add_Click({ $szSchWnd.Focus() });
##★検索go処理 cmd=/0:Top /1:継続 wbx:Wnd/ zcc:Cha/
function global:ssSchFind($zcmd,$wbx,$zcc){ if($wbx-eq $null){$wbx=$tBox}; if($zcmd -eq 0){ $global:szfindPos=0 };
if($zcc-eq $null){ $global:szSetChaText=$zcc=$szSchBox1.Text };
$zPos =($wbx.Text).indexof($zcc,$szfindPos); if($zPos -ge 0 ){;}else{ $wbx.Focus(); return 1 };
$wbx.Select($zPos, $zcc.length); $wbx.ScrollToCaret(); $wbx.Focus(); $global:szfindPos=$zPos+1; return 0;
};
##★m30:add_Mail処理
function global:ssRbtmm($zmm){ if($zmm-eq $null){$zmm=$this }else{$zmm=$this.ownerItem }; $ii=($zmm.Text).substring(0,1); return $maBoxs[$ii] }
function global:ssMaVBoxAdd($zcmd,$zpam,$zpm2){ return (ssMaVBoxCom $zcmd $zpam $zpm2) };
function global:ssMaVBoxCom($zcmd,$zpam,$zpm2){ switch($zcmd){
##★[選択行削除]釦:Dirゴミ箱処理 ★[フォルダ]釦:explorer
!MDel{ if($szMaDirGet-eq ""){return}; ssDirCmp !DDel ; return 1 }##_★
!MExp{ if($szMaDirGet-eq ""){return}; explorer $szMaDirGet; return 1 }##_★
##★[ソート]釦:Dirソート(1:名称/2:題名/0:日時↑/10:日時↓)
!MSrt{ if($szMaDirGet-eq ""){return}; $zcm=$szMaBox.Text.replace("`r","").split("`n"); $cc0=$cc1="";
$zcm|%{ if( $_.contains("_") ){ $cc1+="$_`n" }else{ $cc0+="$_`r`n" }; }; $zcm=(" "+$cc1.trim()).split("`n");
switch($zpam){
1{ $zcm=( $zcm|Sort -Pro{ $_.split("_")[0], $_.split("_")[1], $_.split("_")[2] } ) }
2{ $zcm=( $zcm|Sort -Pro{ $_.split("_")[3] } ) }
0{ $zcm=( $zcm|Sort -Pro{ $_.split("_")[1], $_.split("_")[2] } ) }
10{ $zcm=( $zcm|Sort -Pro{ $_.split("_")[1], $_.split("_")[2] } -D ) }
}; $szMaBox.Text= $cc0.trim()+"`r`n "+ ( $zcm-join "`r`n").trim()+"`r`n"; return 1}##_★
##★[Help]釦(メール表示窓)
!MaMu{ if($zpam-ne "Mail"){return}; $global:szMnBas=$global:aa1=$szMaBoxMenu9;
(ssDMnMSet "検索窓").add_Click({ $global:szSchWnd=(ssBoximm !M2); $szSchBox1.Text=$szSetChaText;
$global:szfindPos=$szMaBox.SelectionStart; $fmSch.Show() });
(ssDMnMSet "行番号表示").add_Click({ ssDirCmp !Wnum !M2});
(ssDMnMSet "行番号へ移動").add_Click({ $cc=(ssVBKeyInp "入力" "行番号" 1); $mm=(ssBoximm !M2); ssDirCmp !MovL $cc $mm })
(ssDMnMSetSb "Winメモ帳で開く").add_Click({ ssDirCmp !Wmem !M2 }); (ssDMnMSet "Editor").add_Click({ ssDirCmp !Wedt !M3 });
(ssDMnMSetAa "文字化け変換" ).add_Click({ ssDirCmp !DUTF !M2 });
(ssDMnMSet "新しい窓Dir表示(Mail)").add_Click({ Start -Non cmd -Arg "/c `"$fln`" /Dir" });
(ssDMnMSet "Webマクロ一覧").add_Click({ ssWebMacList 1 });
(ssDMnMSetSb "行設定>Google翻訳").add_Click({ $cc=$szKKhon.replace("@@@@",((ssBoximm !M2).SelectedText)); start ("https://$cc"); });
(ssDMnMSet "クリップ>翻訳").add_Click({ $cc=$szKKhon.replace("@@@@",(GCB)); start ("https://$cc"); }); $global:szMnBas=$aa1;
##★マウス右釦(メール表示窓)
$mBox.ContextMenuStrip =$global:conMenu=New-object ContextMenuStrip -Pro @{ Font="$szFont,$szMnSize" };
(ssRbtMenu "$zpm2 元に戻す").add_Click({ (ssRbtmm).Undo() });
(ssRbtMenu "$zpm2 切り取り").add_Click({ (ssRbtmm).Cut() });
(ssRbtMenu "$zpm2 コピー" ).add_Click({ (ssRbtmm).Copy() });
(ssRbtMenu "$zpm2 貼付け" ).add_Click({ (ssRbtmm).Paste() });
(ssRbtMenu "$zpm2 [##---]" ).add_Click({ SCB ("##"+("-"*80)); (ssRbtmm).Paste() });(ssRbtMSet "##★").add_Click({ SCB "##★"; (ssRbtmm 1).Paste()});
(ssRbtMenu "$zpm2 すべて選択").add_Click({ (ssRbtmm).SelectAll() });
(ssRbtMSet "折返しON<>Off" ).add_Click({ $mm=ssRbtmm 1; if(($mm.WordWrap)-eq $true){$fg=$false}else{$fg=$true}; $mm.WordWrap=$fg; $mm.ScrollBars="Both";});
(ssRbtMenu "$zpm2 D:[設定]fileを添付にセット").add_Click({ ssDirCmp !MTmp "" (ssRbtmm) });
$aa=(ssRbtMenu "$zpm2 クリップ取得"); (ssRbtMSet "年月日" ).add_Click({ SCB (Get-date -F "yyyy/MM/dd(ddd)" ); (ssRbtmm 1).Paste() });
(ssRbtMSet "Dir(PWD)" ).add_Click({ SCB ($PWD); (ssRbtmm 1).Paste()});
(ssRbtMSet "ファイル名" ).add_Click({ $mm=ssRbtmm 1; SCB ssDirCmp !CPst ((($mm.parent.Text).split("["))[2].trim()); $mm.Paste() });
ssMaVBoxAddMenu $zpm2; return}##_★
}; }; function global:ssMaVBoxAddMenu($zpm2){};
$global:szToolDir=(Split-Path $fln -Par); $global:szRtfMemo="$szToolDir\wPshRtfMemo501.ps1";
##★[WClk]追加処理 ★Dir:移動 ★txt:開く ★他:Win設定起動
$szMaBox.Add_DoubleClick({ if( $szMaDirGet-eq "" ){return}; $zcc=( (ssWCAct $this 1)-split("##") )[0].trim();
if( $zcc.contains(":\")){ $zcc0=$zcc }else{ $zcc0="$szMaDirGet\$zcc" };
if( Test-Path $zcc0 -PathType Container ){ ssDirCmp !DGet 1 $zcc0 ; return};
if( Test-Path $zcc0 ){ if( $zcc0.contains(".txt") ){ ssMaV2Box 3 $zcc0; return};
if( $zcc0.contains(".rtf")-and (Test-Path $szRtfMemo) ){ Start -NoN powershell -Arg "$szRtfMemo $zcc0 "; return};
$zcc=$zcc0.trim(); Start -Non cmd -Arg "/c `"`"$zcc`"`" "; }; ##_★
});
##★mail複数行の選択処理
function global:ssMailAct2($zcmd,$zpam){ switch($zcmd){
##★MViw:Mail表示 ★MaSv:Mail保存 ★MaSD:振分保存
{$_ -in "!MViw","!MaSv","!MaSD"}{ if( ($zpam.length-lt 15)-or ($zpam.substring(17,1)-ne "|") ){return};
$zii=$zpam.substring(0,17); $ccc=$szMaItem[$zii]; $zcc=(ssMailAct !MNme $zpam); $zcm=$zcc.split("|"); $cc0=$zcm[0].substring(0,11);
$cc1=$zcm[1].substring(0,16).replace("_","-"); $zcc5=$cc1+"_"+$cc0 +"@_"; $zzfl=$cc1+"_"+$cc0 +"!_"+$zcm[2]; ##file名利用
$zcc4="";$fg=0; if( $ccc.Attachments.Count-gt 0 ){ $fg=1; $zcc4="[添付]`n"; foreach($att in $ccc.Attachments){ $zcc4 +=$zcc5 +$att.FileName+"`n" }; $zcc4+="`n" };
$zcc01=ssSndrAdr($ccc); $zcc00="$zii From: $zcc01`nCc: "+$ccc.CC+"`n`nTT: " +$ccc.Subject + "`n`n" +$zcc4 +$ccc.body; $ccc.UnRead=$false;
##★振分けDir設定
$zDir=$szMailDir; if( $zcmd-eq "!MaSD" ){ $zcmd="!MaSv"; $zcc0="##" +$zcc01 +"##" +$ccc.Subject;
for( $ii=0; $ii-lt $szDvdPam.length; $ii++ ){ if( $szDvdPam[$ii] -eq "&&Dv" ){}else{continue};
$zcc1= $szDvdPam[$ii+1]; $zcc2= $szDvdPam[$ii+2]; $zcc3= $szDvdPam[$ii+3];
if( $zcc0.contains($zcc1)-and $zcc0.contains($zcc2) ){ $zDir+="\$zcc3" ; break};
}; if( Test-Path $zDir -PathType Container ){}else{ dbg "$zDirが無い" };
};
switch($zcmd){ ##★Viw:表示 ##MaSv:保存
!MViw{ ssMaV2Box 3 "$zzfl.txt" $zii $fg $zcc00; return}##_★
!MaSv{ $zfl="$zDir\$zzfl.txt"; dbc $zfl;
if( Test-Path $zfl ){ if( (MsgYesNo "【注意】重複しています。上書き保存しますか?" "$zzfl.txt")-ne "Yes" ){return}; };
(ssMaFilSave $zfl $zcc00); if($fg-eq 1){ $zcc=($zzfl.split("!"))[0]; $zcc1="$zDir\$zcc"+"@_";
foreach($att in $ccc.Attachments){ $att.SaveAsFile( $zcc1 +$att.FileName) }; }; return}##_★
}; return}##_★
##★MCmp:選択行処理(0:表示 1:削除 2:保存 3:保存削除 4:振分保存 5:振分保存削除 11:未読に戻す 12:読み済み
!MCmp{ $zcc0=$szMaBox.SelectedText; $zfg=0;
foreach($cc in $zcc0.split("`n") ){ $cc=$cc.trim(); if( ($cc.length-lt 12)-or($cc-eq $cc0) ){continue}; $ii=$cc.substring(0,17);
switch($zpam){
0{ ssMailAct2 !MViw $cc } 1{ $zfg=1; $szMaItem[$ii].Delete() }
2{ ssMailAct2 !MaSv $cc } 3{ ssMailAct2 !MaSv $cc; $zfg=1; $szMaItem[$ii].Delete() }
4{ ssMailAct2 !MaSD $cc } 5{ ssMailAct2 !MaSD $cc; $zfg=1; $szMaItem[$ii].Delete() }
11{$szMaItem[$ii].UnRead=$true} 12{$szMaItem[$ii].UnRead=$false}
}; $cc0=$cc;
}; if($zfg-eq 1){ $mm=$szMaBox; $mm.ReadOnly=$false; $mm.cut(); $mm.ReadOnly=$true }; dbg "終了"; return}##_★
##★PDvd:振分処理のパラメ取得( &&Dv; メールアドレス; 題名内の文字; Dir名)
!PDvd{ $zfl="$szMailDir\$szMailPamSet"; $zcm=(Cat $zfl).replace(" ",""); $global:szDvdPam=@(); $st=0;
foreach( $cc in $zcm ){ if( $st-eq 0 ){ if( $cc.startsWith("<MailDvide") ){$st=1}; continue};
if( $cc.startsWith("&&Dv")){}else{ if( $cc.startsWith("<Mail") ){$st=0}; continue};
$zcm=$cc.split(";"); $global:szDvdPam+=$zcm; $zDir="$szMailDir\"+$zcm[3];
if( Test-Path $zDir -PathType Container ){}else{ mkdir "$zDir"; dbg "Dir作成`r`n$zDir" }; }; return}##_★
##★検索窓
!Find{ $global:szSchWnd=$szMaBox; $szMaBox.ReadOnly=$false; $szSchBox1.Text=$szSetChaText; $global:szfindPos=$szMaBox.SelectionStart;
$fmSch.Show(); return}##_★
};};
##★m40:Dirの操作.ownerItem.owner
function global:ssMaSetText($znum){ $zcc00=$szMaBox.SelectedText; if($znum-ne $null){ $zcc00=($zcc00.split("`n"))[$znum] };
$zcc=""; $zcc00.split("`n")|%{ $cc=$_; $zcc+=(($cc-split("##"))[0].trim())+"`r`n" }; return ($zcc.trim()) };
function global:ssDirCmpMaBtCls($zcmd,$zpam,$zDir){ $szMaBox.ContextMenuStrip.close(); ssDirCmp $zcmd $zpam $zDir };
function global:ssDirCmpBtCls($zcmd,$zpam,$zDir){ $this.ownerItem.HideDropDown(); ssDirCmp $zcmd $zpam $zDir };
function global:ssDirFileGet($cc){ if($cc-eq $null){ return("$szMaDirGet\"+(ssMaSetText 0))};
$mm=(ssBoximm $cc); $cc=$szVbfile; if($cc.contains(":\")){return $cc}; return("$szVbDir\$cc") };
##★
$global:szDGetMod=1; $global:szDGetVol=0;
function global:ssDirCmp($zcmd,$zpam,$zDir){ switch($zcmd){
##★DGet:DirList表示 1: 2: 3: 4: 5: (6): 10:/
!DGet{ $global:szDGetMod=$zpam; if( $zDir-eq "" ){ $zDir=$szMailDir }; $global:szMaDirGet=Convert-Path $zDir;
$zcc=$zcc1=$zpm0=$zpm1=$ln=""; if($zpam-eq 5 -and $szDGetVol-ne 1){$zpam=6};
switch($zpam){ 2{ $zpm1="|Sort -Pro Name -D"} 3{ $zpm1="|Sort -Pro{ `$_.name.split(`"_`")[1] } -D"} 5{ $zpm1="-rec |Sort -Pro Name"}
6{ $zpm1="-name -rec |Sort "} };
Iex("dir `"$zdir`" $zpm1")|%{ if($zpam-eq 6){ $cc=$_ }else{ $ln=[int]($_.Length/1000); $cc=$_.name };
$nn=[System.Text.Encoding]::GetEncoding("shift_jis").GetByteCount($cc.trim());
if( $nn -gt 36 ){ $zsp=" " }else{ $nn=36+2-$nn; $zsp=(" "*($nn))+"`t"; };
if( $cc.Contains(".") ){ if( $szDGetVol-eq 1 ){ $zsp=$zsp+"##$ln"+"k" }else{$zsp=""}; $zcc1+=" $cc$zsp`r`n" }
else{ $zcc+=" $cc$zsp"+"##[D]`r`n" };
}; $mm=$szMaBox; $mm.Text=" $szMaDirGet`r`n ..\`r`n$zcc$zcc1"; if( $zpam-eq 10){ ssMaVBoxCom !MSrt 10 };
$mm.ReadOnly=$true; $mm.SelectionStart=0; $mm.BackColor=$szMaBakClr2; return}##_★
##★DNew;新窓作成 ★DTre:Tree表示 ★CkAd:add_Sum値チェック
!DNew{ Start -Non cmd -Arg "/c `"$fln`" $zpam"; return}##_★
!DTre{ $fg="/f"; $pm="920,760"; if($zpam-eq 1){$fg=""; $pm="780,460"}; $zcc=$szMaDirGet; if($zcc-eq ""){ $zcc=$szMailDir };
MsgBox ((Tree "$zcc" $fg)-join "`n") $pm "[Tree 表示]" 10 ; return}##_★
!CkAd{ Start "$szWebryuMail#_szItem1154"; dbg "Web addサム値の[Copy]押下";
if( ( (Get-FileHash $fladd).Hash )-eq (GCB) ){ dbg "add_Sum OK"}else{ dbg "add_Sum NG"}; return}##_★
##★Dir:設定行をメール窓へ添付
!MTmp{ $mm=$zDir; $zcc0=$mm.text; $nn=$zcc0.indexof("[添付]"); if($nn-gt 10){}else{ dbg "D&Drop[添付] 行を追加ください"; return};
$zcm=(GCB).replace("`r","").split("`n"); $zdir=$zcm[0]; if(Test-Path $zdir -PathType Container){}else{ dbg "再設定ください"; return};
for($ii=1; $ii-lt $zcm.length; $ii++){ $cc=$zcm[$ii].trim(); $zcc="$zdir\$cc";
if( Test-Path $zcc ){}else{continue}; if( Test-Path $zcc -PathType Container ){ continue};
$mm.SelectionStart=$nn+6; $mm.SelectedText="AT: $zcc`r`n"; }; return}##_★
##★Line指定で移動
!MovL{ $mm=$zDir; $zcc=$mm.Text; $mm.SelectionStart=$zcc.length; $mm.ScrollToCaret();
foreach($ii in (1..$zpam)){ $pp0=$pp; $pp=$zcc.IndexOf("`n",$pt); if($pp-lt 0){$pp=$pp0; break}; $pt=$pp+1 };
$mm.SelectionStart=$pp0; $mm.ScrollToCaret(); $mm.Select($pp0,$pp-$pp0); return}##_★
##★Wmem:Winメモ帳 ★Wnum:行番号表示 ★DPro:プロパティ ★DUTF:文字化け
{$_ -in "!Wmem","!Wedt","!Wnum","!DPro","!DUTF"}{ $zfl=(ssDirFileGet $zpam); if(Test-Path $zfl){}else{ dbg "No File"; return}; }##_★
!Wmem{ notepad $zfl;return} !Wedt{ & $szEditor $zfl; return}##_★
!Wnum{ $ii=1; $zcc=( cat $zfl |%{ ("{0:0000}" -F $ii++)+"| $_`r`n" } );
MsgBox (" "+$zcc) "560,680" "行番号表示" 9 "#E8E8E8"; $mBox.WordWrap=$false; return}##_★
!DPro{ [MyMsgDlg]::SHObjectProperties( 0, 0x2, $zfl, ""); return}##_★
!DUTF{ $zfl1=$zfl.replace(".txt","_u.txt"); ssMaV2Box 3 $zfl1 00 0 (Cat "$zfl" -enc utf8 -Raw); return}##_★
};
##★Dirモード(D:)処理
if( $szMaDirGet-eq "" ){return}; switch($zcmd){
##★Dir:選択行の設定
!DSet{ $zcc="$szMaDirGet`r`n"+(ssMaSetText); (SCB $zcc); $global:szMaFileSet=$zcc;
if($zpam-ne 1){ dbg "完了=>移動先を選択`r`n`r`n$zcc"}; return}##_★
##★Dir:設定行を選択Dirへ[11]移動/[12]Copy
!DMov{ $zcc0=(ssMaSetText 0); if($zcc0.contains(":\")){}else{ $zcc0="$szMaDirGet\$zcc0" };
if(Test-Path $zcc0 -PathType Container ){}else{ dbg "Dirを選択ください"; return};
##$zcm=$szMaFileSet.replace("`r","").split("`n"); $zdir=$zcm[0];
$zcm=(GCB).replace("`r","").split("`n"); $zdir=$zcm[0]; if(Test-Path $zdir -PathType Container){}else{ dbg "再設定ください"; return};
for($ii=1; $ii-lt $zcm.length; $ii++){ $cc=$zcm[$ii].trim(); $zcc2="$zcc0\$cc"; ##dbg "$ii $zcc2";
if( Test-Path $zcc2 ){ if((MsgYesNo "★[注意]★" "重複してます。上書きOKですか?(Y/N)`r`n`r`n$zcc2")-ne "Yes"){continue}; };
if($zpam-eq 11){ $zcc="Move-Item `"$zdir\$cc`" -Des `"$zcc0`" -Force" }else{ $zcc="Copy-Item `"$zdir\$cc`" -Des `"$zcc0`" -Rec -Force" };
Iex ($zcc); }; break}##_★
##★Dir:名称変更
!DChg{ $zcc0=(ssMaSetText 0); $zcc1=(ssVBKeyInp "[入力]" "$szMaDirGet`r`n`r`n変更名称の入力" $zcc0);
if($zcc1-eq ""){return}; Rename-Item "$szMaDirGet\$zcc0" "$szMaDirGet\$zcc1"; break}##_★
##★Dir:複製(cp)
!DCpp{ $zcc0=(ssMaSetText 0); if( $zcc0.contains(".txt") ){}else{ return};
if( $zcc0.contains("_u.txt") ){ $zcc="_u.txt" }else{ $zcc=".txt" }; $zcc1=$zcc0.replace($zcc,"(cp)$zcc");
copy "$szMaDirGet\$zcc0" "$szMaDirGet\$zcc1"; break}##_★
##★Dir:新規Dir作成
!DMak{ if($zpam-eq 1){ $zcc=(ssVBKeyInp "[入力]" "新ファイル名(txt)" ""); if($zcc-eq ""){return};
$zcc="$szMaDirGet\$zcc.txt"; if(Test-Path $zcc){dbg "重複`r`n $zcc";return}; New-Item $zcc; break}##_★
else{
$zcc=(ssVBKeyInp "[入力]" "新フォルダ名(Dir)" ""); if($zcc-eq ""){return};
$zcc="$szMaDirGet\$zcc"; if( Test-Path $zcc -PathType Container ){dbg "重複`r`n $zcc";return}; mkdir $zcc; break};}##_★
##★Dir:選択行をゴミ箱へ
!DDel{ $zcc00=(ssMaSetText);
if( ($szWSobj.popup( $zcc00, 0,"ゴミ箱へ移動",1)) -eq 1 ){;}else{return};
foreach($cc in $zcc00.split("`n")){ if($cc.length-le 2){continue}; $zcc=("$szMaDirGet\"+($cc.trim())).replace("\\","\");
$trash =$shellAppl.NameSpace(10); $trash.MoveHere($zcc); }; break}##_★
##★Dir:break後の処理
}; ssDirCmp !DGet $szDGetMod $szMaDirGet;
};
##★m50:スーバWeb検索初期登録( &KXXX; WebAdr ; &KXXX利用例 ##注釈 )
$global:szKKhon ="translate.google.ac/?hl=ja&sl=auto&tl=ja&text=@@@@&op=translate";
$global:szKKhonJ="translate.google.ac/?hl=ja&sl=auto&tl=zh-CN&text=@@@@&op=translate";
$global:szWebA="
&KKK ; www.bing.com/search?q=@@@@ ; &KKK コピペ パワー ## MSN検索
&KKA ; www.amazon.co.jp/s?k=@@@@ ; &KKA ノートパソコン ## Amazon検索
&KKY2 ; transit.yahoo.co.jp/search/result/@@@@ ; &KKY2 大阪-京都 ## yahoo乗車時間検索
&KKCHI; www.google.co.jp/maps/place/@@@@ ; &KKCHI 京都 ## 地図検索
&KKDEN; www.google.co.jp/search?q=電卓 ; &KKDEN ## 電卓
&KKHON; $szKKhon ; &KKHON ## 翻訳([KKHON]以下行;)
";
##★List表示 ★[WClk]追加処理(メール表示窓:すーぱWeb検索)
function global:ssWebMacList($zfg){ ($szWebA+$szWebB).trim().split("`n")|%{ $cc+=(($_.split(";"))[2])+"`r`n`r`n" }; if($zfg-eq $null){return $cc};
MsgBox $cc "450,520" "Webマクロ(Wclk)" 10 ; $mBox.Add_DoubleClick({ssWCAct $this});
$mBox.Add_KeyDown({ if($_.Control){ switch($_.KeyCode){ {$_ -in "n","Return"}{ssWCAct $this} }; }; }); };##_★
function global:ssWClkCmd($lnn,$zcc){ $cc0=($zcc.split(" "))[0]; $cc1=$zcc.substring($cc0.length).trim();
if( $cc0.startsWith("&ttps:") ){ $cc0=$cc0.replace("&ttps:","https:"); start "$cc0"; return};
if( $cc0.startsWith("&K") ){ if($zcc.contains(";")){ $cc=((($zcc.split(";"))[2])-split("##"))[0].trim(); ssWClkCmd 0 $cc; return};
if($cc0-eq "&KKHON"){ foreach($ii in (1..500)){ $cc=$this.Lines[$lnn+$ii]; if($cc.length-eq 0){break}; $cc1+="`n"+$cc.trim() }; };
foreach( $cc in ($szWebA+$szWebB).split("`n") ){ $cm=$cc.split(";"); $cc00=$cm[0].trim();
if( $cc0-eq $cc00 ){ $ccc= ($cm[1]-split("##"))[0].trim(); $cc2=$ccc.replace("@@@@",$cc1); start "https://$cc2"; return}; };##_★
}; ssWClkCmdUsr $lnn $zcc; }; function global:ssWClkCmdUsr{};##_★(dmmy)
##★m52:メニュ釦へのWebAdr/WinCmd登録/SUBメニュメモ登録/Act処理登録(&Dir/https/cmd)
$global:szDMnSetAct=@{}; $global:webView="C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe";
function ssDMnActSet($zcc){ foreach( $cc in $zcc.split("`n") ){ if( $cc.contains(";") ){}else{continue};
$zcm=$cc.split(";"); $cc=$zcm[0].trim(); $cc1=$zcm[1].trim(); if( $cc.length-lt 2 ){continue};
if( $cc-eq "&&" ){ $szDMnSetAct[$cc0]+=";$cc1" ; continue}; $cc0=$cc; $szDMnSetAct[$cc0]=$cc1;
( ssDMnMSet $cc0 ).add_Click({ $zcc0=$this.Text; $zcc=$szDMnSetAct[$zcc0];
if( $zcc.startsWith("&Dir ") ){ $cc="$szMailDir\"+($zcc.substring(4).trim()); if(Test-Path $cc){ ssMaV2Box 3 "$cc\$zcc0.txt" };return};
foreach( $cc in $zcc.split(";") ){ if( $cc.startsWith("https:")){ Start $webView -arg "--new-window" , $cc; Start-Sleep -Milliseconds 500; continue};
if( $zcc.contains(".ps1") ){ Start powershell -NoN -Arg "-noe $zcc ";}else{ Start -Non cmd -Arg "/c $zcc" };}; });
};};##_★
##★m54:その他(雑記帳) ★Web検索メモ
function global:MenuSet($zcmd,$zpam){ $nn=$szMaMen[$zcmd]; $global:szMnBas=$nn; if($zpam-eq $null){return};
$cc=($zpam-split("::"))[0]; $zsub=$zpam.substring(6); switch($cc){
!Set{ $global:dmMenu=$mMain.MainMenuStrip; $szMaMen[$zcmd]=$global:szMnBas=(ssDMnMenu $zsub); if($nn-ne 0){ $nn.Dispose()}; return}##_★
!Sub{ $global:szMnBas=(ssDMnMSet $zsub); return}##_★
!Act{ $global:szMnBas=(ssDMnMSet (($zsub.split("`n"))[0]).trim()); ssDMnActSet($zsub);return}##_★
};(ssDMnMSet $zpam).add_Click({ $zcc=$this.Text; ssMaV2Box 3 "$szMailDir\$zcc.txt" });
};
(MenuSet 8); (ssDMnMSetSb "Webマクロ一覧").add_Click({ ssWebMacList 1 }); (ssDMnMSet "登録").add_Click({ ssMailAct !MPam "<MailBxWeb>" });
$zcc="!tmp\!Web検索メモ"; (MenuSet 8 $zcc); $zfn="$szMailDir\$zcc.txt"; if( Test-Path $zfn ){}else{ SC $zfn (ssWebMacList) };
##★m56:キー入力BOX窓(VB) ##★cmd:処理No ch0:入力コメント ch1:初期値
function global:ssVBKeyInp( $zcmd, $zch0, $zch1){ ##Add-Type -Assembly Microsoft.VisualBasic;
$zcc=[Microsoft.VisualBasic.Interaction]::InputBox($zch0,$zcmd,$zch1); return $zcc}; ##_★
##★m58:Wscript.shell、組込み
if($szWSobj-eq $null){ Add-Type -Assembly Microsoft.VisualBasic;
$global:szWSobj=New-object -Comobject Wscript.shell; $global:shellAppl=New-Object -ComObject Shell.Application;
Add-Type 'using System; using System.Runtime.InteropServices;
public class MyMsgDlg{ [DllImport("shell32.dll",CharSet=CharSet.Unicode)]
public static extern bool SHObjectProperties(IntPtr hwnd, uint shopObjectType,
[MarshalAs(UnmanagedType.LPWStr)] string pszObjectName,[MarshalAs(UnmanagedType.LPWStr)] string pszPropertyPage); }'
};
##★m60:新しい窓Dir表示(mail)
if( $arg.startsWith("/Dir") ){ $pt=[Cursor]::Position; $fm=$mMain; $fm.Location=""+($pt.X-600) +","+$pt.Y;
$fm.StartPosition="Manual"; $dd=1; if($arg-eq "/Dir1"){$dd=10}; ssDirCmp !DGet $dd $szMailDir };
##★m62:未読チェック(10秒周期)$scActBox.Parent.Opacity=
function global:ssMaTimerMido($cc){ $tm=$szMaTimer3; if($tm-ne $null){ if($cc-eq 0){ $tm.Stop() }else{ $tm.Start() }; return};
$global:szMaTimer3 =$tm=New-Object Timer -Pro @{Interval=10000}; $tm.Start();
MsgBox "未読MSG取得" "640,70" "【未読メールチェック(10秒周期)】" 10 "#D1FFFE"; $global:szMailBoxMido=$mBox; $fm=$fmMbox;
$fm.Location="0,0"; $fm.Add_Closing({ $_.Cancel=$True; $this.Visible=$false });
$tm.Add_Tick({ $ii=ssMailAct !MGet "6;1;1" ; ssMailCheckMido $szMailBoxMido $szMailDtGet });
}; function global:ssMailCheckMido($mm,$zcc){ $fm=$mm.Parent; $dd=0.2; $mm.Text=$zcc; if($zcc.length-ge 5){$fm.Visible=$true; $dd=1}; $fm.Opacity=$dd };
(12.4) [add]サムチェック値(Sum値)
【起動表示窓】から[ツール]->[Web->addサムチェック]を押下して行います。
【起動表示窓】から[ツール]->[Web->addサムチェック]を押下して行います。
214C781893716663B6A615C018DAD589C3C1E7BD9EBBE9F7AB5476B9A3367B9E<履歴>
V1.24:操作性改善(HELP充実/usr機能改善(マルチ/PSH登録化)など)
V1.23:操作性改善(Help/Dir操作/Webマクロ/設定File項目移動/Tree/Winフォルダ/Web指定など)
V1.21: 操作性改善、 usr中級編対応、Dir名入力表示、行番号移動など。
V1.17: sort改善、usr追加改善、explorer起動位置改善。
V1.15: UTF文字化け変換、ANSI設定、DモードD&Drop処理、[&ttps:]マクロ追加。
V1.13: ソート釦、選択行[削除]釦をDirモードに対応、ssMaVBoxAdd利用対応など。
V1.24:操作性改善(HELP充実/usr機能改善(マルチ/PSH登録化)など)
V1.23:操作性改善(Help/Dir操作/Webマクロ/設定File項目移動/Tree/Winフォルダ/Web指定など)
V1.21: 操作性改善、 usr中級編対応、Dir名入力表示、行番号移動など。
V1.17: sort改善、usr追加改善、explorer起動位置改善。
V1.15: UTF文字化け変換、ANSI設定、DモードD&Drop処理、[&ttps:]マクロ追加。
V1.13: ソート釦、選択行[削除]釦をDirモードに対応、ssMaVBoxAdd利用対応など。
(12.5) [add]利用説明
①メールリスト表示【M:モード画面】複数行のメールを選択して処理します。- [C]/ 受信Box/ その他/ ソート/ 選択行[削除]/ [フォルダ]/ 作成/ Help は6項を参照ください。
- M:表示(max10):メール表示窓を最大10窓一括で表示します。
- M:一括[削除]:[選択行削除]釦と同じ処理をします。
- M:一括[保存]:複数の選択行を一括でmailフォルダにファイル保存します。
- M:振分け[保存]:(8.4)項の振分け設定データに従い指定フォルダ(Dir)にファイル保存します。
- 振分け設定:Mail[設定File]の振分け設定データ位置を表示する。V1.23
②Dirリスト表示【D:モードの画面】
explorerのようなフォルダ/ファイル表示や操作処理をします。[Dir操作][新しい窓Dir表示]押下で新たにこのアプリを起動し [mailフォルダ(Dir)] を表示します。
<フォルダ/ファイル操作>
- 1行目のDir名の[WClk]でそのフォルダを再表示します。
- 2行目の[..\]の[WClk]で上位のフォルダへ移行します。
- フォルダ行 ##[D] をダブルクリック[WClk]でそのフォルダへ移行します。
- ファイル行を[WClk]でそのファイルの表示又はWindows設定起動をします。なお [XXXX.txt] ファイルはメール表示窓で表示します。
- windowsメモ帳(プリント出力)や登録Editorで表示する場合は右釦[Winメモ帳で開く]から表示します。
<Dir操作/マウス右釦>メニューからの操作
- 新しい窓Dir表示(Mail):新しい窓で次の[Dir表示(Mail)]表示処理をします。
- Dir表示(Mail):起動表示窓に[mailフォルダ(Dir)]を表示します。
- D:容量表示ON<>OFF:ファイル[容量表示する<>しない]を切換えます。V1.23
- D:Dir表示(逆順):指定Dirでフォルダ/ファイル毎に逆順文字列で表示します。
- D:Dir表示(月日順):指定Dirでファイル名の年月日の新しい順に表示します。
- D:Dir表示(子展開):指定Dirで下位層のファイルも表示します。[Tree表示]も可能です。
- D:Dir(explorer):指定Dirでexplorer窓を表示します。
- D:選択行を[設定]し:移動又はコピーするフォルダやファイルを選択し釦押下します。
- D:[設定]を選択Dirへ移動:その後、[移動先フォルダ]を選択し釦押下します。
- D:[設定]を選択DirへCopy:その後、[コピー先フォルダ]を選択し釦押下します。
- D:名称の変更:指定のフォルダやファイル名を変更します。
- D:新フォルダの作成(Dir):指定Dirに新規フォルダを作成します。
- D:ファイルの複製(cp):指定のフォルダやファイルの複製を作成します。
- プロパティ:ファイルやフォルダのプロパティ窓を表示します。
- D:選択行を[ゴミ箱へ]:指定Dirで選択フォルダやファイルをゴミ箱へ移動します。
- [ゴミ箱]を表示:ゴミ箱を表示します。
- Dirを入力し表示:フォルダ名を入力してそのフォルダを表示します。
- winフォルダから表示:WindowsフォルダTree窓でフォルダを指定して表示します。
③【起動表示窓】の [ツール] ⇒ [検索窓] 次に検索機能について記載します。
この釦押下で次の検索窓が表示されます。マウス文字設定のときは [Get] 釦を押下します。
[Top] 釦押下で最上位の検索文字にマウスを移動します。[検索] 釦押下毎に検索文字にマウスが移動します。
※【メール表示窓】にも [help]⇒[検索窓] があり夫々のメール表示窓で文字検索が可能です。
13.[usr] 機能追加の方法→T
(13.1)機能追加方法[usr]
このアプリはPSH言語で作成しているので機能追加は自由に可能です。
とは言っても、PSH言語学習やアプリ解析が必要では機能追加は難しいと思います。
このアプリはPSH言語で作成しているので機能追加は自由に可能です。
とは言っても、PSH言語学習やアプリ解析が必要では機能追加は難しいと思います。
そこで「雑記メモ」を簡単に追加して「何か気がついたときにメモする機能」としてステップ1に照会します。また「チョットしたプログラム機能追加の方法」としてステップ2に照会します。
(13.2)ステップ1(色々な雑記メモの登録)
次の操作により[usr]ファイルを開きます。(メール表示窓で表示)
[起動表示窓]->[ツール]->[usr編集]->[0000]パスワード入力->[Enter]
そして、次の4行をコピペして貼付けたあと[保存]釦を押下し登録終了します。
( MenuSet 8 "!tmp\!雑記メモ1" )
( MenuSet 8 "!tmp\!雑記メモ2" )
( MenuSet 9 "!tmp\!ヘルプメモ" )
( MenuSet 12 "!tmp\!ツールメモ" )
一旦、アプリを終了し再起動すると、[作成] [Help] [ツール]のメニューに各メモが登録され利用可能になります。簡単に説明すると以下です。色んなメモを追加して便利にご利用ください。
- MenuSet:メニュー登録関数
- 8/9/12:[C]からのメニュー番号(8:作成、9:Help、12:ツール)
- "XXXXXXXX":メニュー名及びファイル名で登録
(13.3)ステップ2(チョットした機能追加の方法)
最初はステップ1と同じ方法で[usr]ファイルを開き次の11行をコピペで貼付けたあと
[保存]釦を押下して終了します。なおこの方法で本格的な機能追加も可能です。
##★ツールへ追加登録[12]
( MenuSet 12 )
( ssDMnMSet "[AAAA]" ).add_Click({ ssUsrAct "AAAA" 121 });
( ssDMnMSet "usr[編集2]" ).add_Click({ & $szEditor $flusr });
( ssDMnMSet "usr[再Load]" ).add_Click({ . $flusr });
##★ツール2の新規登録[13]
$global:szMaMenu13=(ssDMnMenu "ツール2");
( ssDMnMSet "[CCCC]" ).add_Click({ ssUsrAct "CCCC" 333 });
( ssDMnMSet "[受信BOX]" ).add_Click({ ssMailAct !MGet "6;0;1" ; MsgBox $szMailDtGet });
##★処理関数
function global:ssUsrAct($zcmd,$zpam){ dbg $zcmd; dbg $zpam };
アプリを終了し再起動すると次の機能が組み込まれます。次回からは次の[usr編集2]を使います。
●[ツール]釦へ追加
- [AAAA]釦から関数[ssUsrAct]の起動。
- [usr編集2]釦から登録エディタでusrファイルを開く。
- usr[再Load]釦からusrファイルを再ロードして起動する。
●[ツール2]釦の新規追加
- [CCCC]釦から関数[ssUsrAct]の起動。
- [受信BOX]釦から新しいMsgBox窓に受信mailBox一覧を表示。
なお、登録エディタを変更する場合は以下の行を追加します。
$global:szEditor="C:\登録エディタのフルパス名"
また、プログラム作成でエラーが発生するとパソコン右下に「黒色窓」アイコンがあるのでそれをクリックすると表示されますので修正しながらプログラム作成します。
●[ツール3]マウス釦へ追加
次の3行を追加すると[起動表示窓]のマウス右釦に追加できます。
##★起動表示窓:右釦に追加
●[ツール3]マウス釦へ追加
次の3行を追加すると[起動表示窓]のマウス右釦に追加できます。
##★起動表示窓:右釦に追加
$aa=(ssRbtMenu "ツール3" )
(ssRbtMSet "[DDDD]").add_Click({ ssUsrAct $this.Text 333 });
●補足(usr[再Losd]釦の利用)
この釦を押下すると再度[usr]ファイルが起動登録するため[usr]ファイルをデバッグするときに利用します。 ところが上記の各メニューも何度も登録されます。そのため各メニュー登録は1回だけにする例を以下に記載します。(<説明> if文を使い2回目以降は未登録にする。)
if($szUsrSts-eq $null){ $global:szUsrSts=1;
( MenuSet 8 "!tmp\!雑記メモ1" )
:: ::
##★ツールへ追加登録 ★ツール2の新規登録
( MenuSet 12 )
( ssDMnMSet "[AAAA]" ).add_Click({ ssUsrAct "AAAA" 121 });
:: ::
$aa=(ssDMnMenu "ツール2");
:: ::
};
##★処理関数
function global:ssUsrAct($zcmd,$zpam){ dbg $zcmd; dbg $zpam };
14.関数「ssMaVBoxAdd」の利用方法→T
(14.1)機能追加[ssMaVBoxAdd]利用
この関数は6.3項の[usr]機能追加ステップ2での利用を前提としています。例としてメール表示窓にメニュー追加、右釦メニュー追加の方法を示します。次の7行をコピペで張り付けたあと[保存]釦を押して終了します。
この関数は6.3項の[usr]機能追加ステップ2での利用を前提としています。例としてメール表示窓にメニュー追加、右釦メニュー追加の方法を示します。次の7行をコピペで張り付けたあと[保存]釦を押して終了します。
##★メール表示窓、★右釦に追加
function global:ssMaVBoxAddMenu($zpm2){
$aa=(ssDMnMenu "ツール4");
(ssDMnMSet "[EEEE]").add_Click({ ssUsrAct $this.Text 444 });
$aa=(ssRbtMenu "$zpm2 ツール5");
(ssRbtMSet "[FFFF]").add_Click({ ssUsrAct $this.Text 555 });
};
上記例は関数[ssMaVBoxAddMenu]ですが、実際には5.1項の[add]機能追加で関数[ssMaVBoxAdd]を登録しこの中で関数[ssMaVBoxAddMenu]を登録しています。PSH言語には関数オーバーライト機能があり関数入れ替えで上記のメニュー追加処理をします。
ところがこのアプリは関数[ssMailAct($zcmd,$zpam)]に主要機能を全て組み込んでいるためこの関数をオーバーライトすることがで出来ません。そのため関数[ssMaVBoxAdd]を使って各機能を入れ替えることができるアプリ構造を取っています。
具体的な利用例は[add]ファイルの次の箇所をご参照願います。この処理は[起動表示窓]の[ソート]釦、[選択行[削除]]釦にDirモードのときの処理を追加した処理となっています。この関数は[usr]ファイルを利用して本格的なアプリ機能変更をするときに利用します。
ところがこのアプリは関数[ssMailAct($zcmd,$zpam)]に主要機能を全て組み込んでいるためこの関数をオーバーライトすることがで出来ません。そのため関数[ssMaVBoxAdd]を使って各機能を入れ替えることができるアプリ構造を取っています。
具体的な利用例は[add]ファイルの次の箇所をご参照願います。この処理は[起動表示窓]の[ソート]釦、[選択行[削除]]釦にDirモードのときの処理を追加した処理となっています。この関数は[usr]ファイルを利用して本格的なアプリ機能変更をするときに利用します。
##★add_Mail処理
function global:ssMaVBoxAdd($zcmd,$zpam,$zpm2){ return (ssMaVBoxCom $zcmd $zpam $zpm2) };
function global:ssMaVBoxCom($zcmd,$zpam,$zpm2){ switch($zcmd){
##★Dirゴミ箱処理
!MDel{ if($szMaDirGet-eq ""){return}; ssDirCmp !DDel ; return 1 }##_★
##★Dirソート(1/2/0/10)
!MSrt{ if($szMaDirGet-eq ""){return}; switch($zpam){ 1{$pp=0} 2{$pp=3} 0{$pp=1} 10{$pp=11} };$zpam=$pp;
::
::
};
15.Mail設定Fileの説明→T
(15.1) <MailWnd> 起動表示窓の設定(背景色:Mモード/Dモード)(15.2.1) <MailBox>メール表示窓の設定
(15.2.2) <MAdrBox>メールアドレス窓の設定
(15.3) <MailPshAct> メール表示窓で[Psh_ON]設定で、PSH短文処理を登録した例
(15.4) <MailDvide> 受信メールの振分け保存設定で利用の設定
- &&Dv; 振分け設定行のマーク
- メールアドレス;
- 題名内の指定文字の指定;
- Dir名; 保存フォルダ名の指定(必須)
次のフォーマットで登録します。[メール表示窓]->[help]->[Webマクロ一覧]で表示可能です。
&KKXXX(&Kマクロ文字); WebAdr(@@@@:文字変換) ; &KKXX サンプル ## 説明文
(15.6) <SendNote> メール送信時のチェック小窓に表示される文言の登録
(15.7) <MailFudr> メール作成時に挿入可能なフッタの登録
(15.8) <MailAdr> メールアドレス、グループの登録(2重登録まで)
- [XXXXX] グループ名の登録
- &XXXXX メールアドレスの略語の登録
- /O=XXXXX outlook側の「/o=ExchangeLabsXXXXX」登録文字の再変換
以下に登録設定例を示します。注: 各種登録文字のエラーチェックはしていません。登録後に【必ず動作チェック】してから利用するようにしてください。
<MailWnd> 1120,720 12 #D1FFFE #D1FFEE ##【起動表示窓(背景色:Mモード/Dモード)】
<MailWnd> 1120,720 12 #D1FFFE #D1FFEE ##【起動表示窓(背景色:Mモード/Dモード)】
<MailBox> 980,720 12 #E5FFE4 ##【メール表示窓】
<MAdrBox> 860,640 10 #E0FFE4 ##【アドレス窓】
<MailPshAct> 【 [&][&&&]利用の短文処理 】
&&& MsgBox ( (Get-FileHash $fln).Hash ) "600,100" "★アプリサム値表示"
&&& $tBox.Font="HG丸ゴシックM-PRO,13"
<MailDvide>【 &&Dv; メールアドレス; 題名内の文字; Dir名 】
&&Dv ; ryuYY2228@outlook ; 課題AAA ; dirA
&&Dv ; @gmail ; テーマBBB ; dirB
&&Dv ; ; テーマCCC ; dirC
&&Dv ; mamaZZ1234@gmail ; ; dirD
<MailBxWeb> 0
##説明 &KKXXX(&Kマクロ文字); WebAdr(@@@@:文字変換) ; &KKXX サンプル ## 説明文
&KKR ; search.rakuten.co.jp/search/mall/@@@@ ; &KKR 時計 ## R楽天市場
&KKY ; search.yahoo.co.jp/search?p=@@@@ ; &KKY テレビ ## Yahoo検索
<SendNote> 【次の行にメール送信時の注記を登録】
★添付ファイルは20MB以下です。
exe/com/batなど起動type型のファイルは添付送信できません。
<MailFudr> 【次の行にメール作成時のフッタを登録】
★-----------------★
①住所:XXXXXXX1111
②電話:YYYYYYY2222
★-----------------★
<MailAdr> 【 例 &name : mailAdr@outlook.jp 】 メールアドレス、グループの登録
[group1] : &ryupapa1 ; &mama1234 ; takata_ZZ@gmail.com
[group2] : &mama1234 ; &mama1212
&ryupapa1 : ryuXX111@gmail.com
&ryupapa2 : ryuYY222@outlook.jp
&mama1234 : mamaZZ1234@gmail.com
&mama1212 : mamaYY1212@yahoo.co.jp
&山田さん : Yamada XXXX / ABCD KK(KYOTO) / PTN <yamada101.XXXX@gmail.com>
/o=ExchangeLabs/ou=Exchange Administrative Group (FYDXXXXX)/cn=Recipients/cn=XXXXX-c555555-4b : ryupapa-XXXX@outlook.jp
16.アプリ機能一覧→T
16.1. 機能概要
各種窓の表示からメール処理、ファイル処理に必要な機能を搭載し、更にサポート機能としてアプリ更新、Sum値チェック機能を搭載しています。 また[usr]ファイルによる機能追加の機能も搭載しています。なお[usr]編集のパスワードは[0000]です。(WClk: ダブルクリックの略)
16.2. 各種窓の表示機能一覧
1) 起動表示窓(M:モード)
2) 起動表示窓(D:モード)
3) メール表示窓
4) アドレス帳窓
5) 送信チェック窓
6) スーパWeb一覧窓
7) 検索窓
8) 未読周期表示窓
9) 行番号ファイル表示窓
10) Windows Explorer窓
11) Windowsファイル読取窓
12) Windowsファイル保存窓
13) Windowsプロパティ窓
14) Windowsキー入力窓
16.3.起動表示窓(M:モード(Mail List))の機能
1) 受信BOXを表示(全て)
2) 受信BOXを表示(未読)
3) 送信済BOXを表示
4) 他:迷惑メールBOXを表示
5) 他:削除済みBOXを表示
6) 他:削除済みBOXを表示(未読)
7) WClkで指定メールを新窓で表示
8) ソート並び替え(名称/題名/日時順/逆)
9) 選択行の一括削除
10) 選択行の一括保存
11) 選択行の一括表示
12) 選択行の一括振分け保存
13) 新規メール作成窓の表示
14) メール[設定File]編集窓の表示
15) Web検索メモ編集窓の表示
16) 文字寸法変更、窓寸法設定、背景色設定
17) マウスでの複数行設定
18) マウス右釦メニュー表示
16.4.起動表示窓(D:モード(Dir/File))の機能
1) 新しい窓でメールフォルダ表示
2) 現在の窓でメールフォルダ表示
3) WClkでフォルダ移動表示
4) 子フォルダ内のファイル一式表示
5) WClkで指定txtファイルを新窓で表示
6) ソート並び替え(名称/題名/日時順/逆)
7) 選択行の一括ゴミ箱移動
8) 選択行を一括[設定]し
9) 同上[設定]行をフォルダ移動
10) 同上[設定]行を窓から窓へ移動
11) 新フォルダ作成
12) ファイル名変更
13) 文字寸法変更、窓寸法設定、背景色設定
14) マウスでの複数行設定
15) マウス右釦メニュー表示
16.5.メール表示窓の機能
1) 独立10個のメール窓コントロール
2) メールからファイル名の生成
3) メールのテキストファイル化
4) メールのUTF8テキストファイル操作(表示/保存)
5) メールの添付ファイル取得(メールフォルダに保存)
6) メールのテキスト表示窓への表示
7) テキスト窓の編集・保存(Yes/No)処理
8) マウス右釦編集(切取り/コピー/張付け/戻し/全選択)
9) 新規メールの作成(新規/既存ファイルより)
10) 転送メールの作成
11) 返信メールの作成(送信者/Cc:/To:の設定)
12) フッタの登録&追加
13) アドレス帳窓からの略語メールアドレス変換
14) 添付ファイルの右釦での設定
15) 添付ファイルのexplorerからのマウスD&Drop設定
16) 送信メールチェック窓表示
17) 送信メールのoutlook送信
18) 設定行/クリップ利用でgoogle翻訳
19) アドレス帳窓のWClkでのアドレス略語設定
20) Web検索マクロ窓の表示
21) WClkでのスーパWeb検索処理
22) WClkでのhttpアドレス行のWeb表示
23) WClkでの添付ファイル表示(Windows設定アプリで表示)
24) WClkでのPSH短文処理
16.6.アプリ操作での関連窓
1) アドレス帳窓
1.1) [設定File]からアドレス切出し表示
1.2) Wclkでテキスト窓のマウス位置に挿入
2) 送信チェック窓
2.1) 略語のアドレス変換
2.2) 送信チェック確認窓の表示
3) スーパWeb一覧窓
3.1) [設定File]からWeb検索マクロ切出し表示
3.2) MSN検索/ Amazon検索/ yahoo乗車時間検索/ 地図検索/ 電卓/ 翻訳検索
3.3) [設定File]登録でのWeb検索(例)
4) 検索窓
4.1) マウス選択文字の取得
4.2) 検索文字のサーチ位置へ移動
5) 未読周期表示窓
5.1) 10秒周期での未読メール検索
5.2) 周期検索のON/OFF
6) 行番号ファイル表示窓
16.7.Windows関連窓
1) Windows Explorer窓
1.1) 指定Dirで窓OPEN
1.2) explorerからDモード起動窓へD&DROP処理
1.3) explorerからメール表示窓へD&DROP処理
1.1) 指定Dirで窓OPEN
1.2) explorerからDモード起動窓へD&DROP処理
1.3) explorerからメール表示窓へD&DROP処理
2) Windowsファイル読取窓
2.1) ファイル名指定でメール表示窓でOPEN
2.1) ファイル名指定でメール表示窓でOPEN
2.2) 読取りフォルダの変更
3) Windowsファイル保存窓
3.1) 保存ファイル名の変更
3.2) 保存フォルダの変更
4) Windowsプロパティ窓
4.1) 各種プロパティ設定の実行
5) Windowsキー入力窓
5.1) 新規フォルダ名の入力
5.2) 名称変更名の入力
5.3) [add]/[usr]編集パスワード入力
16.8.サポート機能
1) Helpメニューの表示(Web表示含む)
2) アプリの半自動更新支援(基本部及び[add]部共通)
3) バージョン表示支援
4) Outlook再接続支援
5) アプリSum値チェック支援(基本部/[add]部)
6) [usr]ファイル編集支援
7) [usr]利用の機能追加支援
