Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5602 / 13645 ツリー ←次へ | 前へ→

【49924】shellで起動したメモ帳を2枚ならべるには? みそじのおじさん 07/6/28(木) 16:08 質問[未読]
【49925】Re:shellで起動したメモ帳を2枚ならべるに... neptune 07/6/28(木) 17:04 回答[未読]
【49930】Re:shellで起動したメモ帳を2枚ならべるに... みそじのおじさん 07/6/28(木) 21:43 お礼[未読]

【49924】shellで起動したメモ帳を2枚ならべるには...
質問  みそじのおじさん  - 07/6/28(木) 16:08 -

引用なし
パスワード
   お初です。いつも参考にさせてもらっています。

shellで起動した2つのメモ帳を2枚並べて表示させることは、VBAで可能でしょうか?
現状は、2つのコマンドボタンそれぞれに
  
  ret=Shell("notepad " & FlName,vbNormalFocus)
  AppActivate ret

と記述しており、2枚目が同じ場所にでてくるので、出てきた時に手動でずらしているという状態です。
これができれば、すぐにコピペをして作業完了!!といきたいところなんですが,,,
 メモ帳のサイズは画面の1/4程度で、開く数は2枚以上はありません。

もし開く場所の指定の仕方があるならば、どうかご教授ください。
当方、環境はWinXP,EXCEL2003です。

【49925】Re:shellで起動したメモ帳を2枚ならべる...
回答  neptune  - 07/6/28(木) 17:04 -

引用なし
パスワード
   こんにちは

>shellで起動した2つのメモ帳を2枚並べて表示させることは、VBAで可能でしょうか?
可能不可能をいうと可能です。

但し、私の思いつく方法はAPIをゴリゴリ書かなければ出来ません。
APIを使うにはそれなりの勉強が必要です。

Web上に沢山サンプルがあると思いますので、研究してみて下さい。
(それほど難しくもないのですが、サンプル書く根性がありません)


1.2つのメモ帳のHWNDを取得します。
FindWindow、EnumWindow等を使用したらWindowハンドルが取得できます。
Class名は[notepad]です。

2.2つのメモ帳のWindowRectを取得します。
GetWindowRectでWindowのスクリーン座標が取れます。
どこにどのようにあるのかわかります

3.Windowを動かします。
MoveWindowを使用します。

ここまで書いて・・・・結構鬱陶しいと思います。
Webでこれまで書いたキーワードを研究してみて下さい。

【49930】Re:shellで起動したメモ帳を2枚ならべる...
お礼  みそじのおじさん  - 07/6/28(木) 21:43 -

引用なし
パスワード
   ▼neptune さん:
素早い返信ありがとうございます。


>但し、私の思いつく方法はAPIをゴリゴリ書かなければ出来ません。

早速調べてやってみました。neptuneさんのいう通りホントにAPIがゴリゴリでした。(泣きたい---)でも出来ました!!的をしぼったご指摘ありがとうございます。この3っつを
勉強すればOKですね。また何かあった時はよろしくお願いします。

5602 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free