タイトルの件、下記の画像をご覧ください。
全部でみつのフォルダを下記の画像のように
並べるマクロを教えて下さい。
出来れば、フォルダを開くところから
スタートするマクロが良いです。
フォルダを開くだけのマクロは下記のコードのとおりです。
【フォルダパス】
C:\Users\2020\Desktop\フォルダA
C:\Users\2020\Desktop\フォルダB
C:\Users\2020\Desktop\フォルダC
【フォルダA、フォルダb、フォルダCを開くマクロ・コード】※動作確認済
Const 半角スペース = """"
Sub sample()
Dim Apath As String
Dim Bpath As String
Dim Cpath As String
Dim Dpath As String
Apath = "C:\Users\2020\Desktop\フォルダ A"
Bpath = "C:\Users\2020\Desktop\フォルダ B"
Cpath = "C:\Users\2020\Desktop\フォルダ C"
CreateObject("WScript.Shell").Run 半角スペース & Apath & 半角スペース
CreateObject("WScript.Shell").Run 半角スペース & Bpath & 半角スペース
CreateObject("WScript.Shell").Run 半角スペース & Cpath & 半角スペース
End Sub
No.4ベストアンサー
- 回答日時:
こんにちは
動く環境で良かったです
>●フォルダパスを指定していないですが、なぜ、フォルダちゃんと開くのでしょうか?
これに関しては、
スッキリした解り易い解説(参考)サイトが良かったかも知れませんが
内容の一文が代弁してくれていますのでこちらを確認してみてください
http://www.ken3.org/vba/backno/vba114.html
No.3
- 回答日時:
こんにちは
WindowsAPIのSystemParametersInfoとShowWindowを使用して
移動、サイズ変更時の事を考えてCreateObject("WScript.Shell").Runはやめて(寄せ集め手持ちが違っていたので・・)
Option Explicit
Private Declare PtrSafe Function ShowWindow Lib "user32" ( _
ByVal hwnd As LongPtr, ByVal nCmdShow As Long) As Long
Private Declare Function SystemParametersInfo Lib "user32" _
Alias "SystemParametersInfoA" ( _
ByVal uAction As Long, _
ByVal uParam As Long, _
ByRef lpvParam As Any, _
ByVal fuWinIni As Long) As Long
'構造体
Public Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Sub example()
Dim aryPath(0 To 2)
Dim wsh As Object
Dim ds As String
Const 半角スペース = """"
Set wsh = CreateObject("WScript.Shell")
ds = wsh.SpecialFolders("Desktop")
'? フォルダ 半角スペースはあるの?A
aryPath(0) = ds & "\フォルダ A"
aryPath(1) = ds & "\フォルダ B"
aryPath(2) = ds & "\フォルダ C"
Dim Rt As RECT
Call SystemParametersInfo(48, 0, Rt, 0) '48有効サイズ
Dim Lpt As Long, Tpt As Long, wd As Long, ht As Long
wd = Rt.Right - Rt.Left
ht = Rt.Bottom - Rt.Top
Dim objShell As Object
Dim lgWnd As Long
Dim i As Integer
Set objShell = CreateObject("Shell.Application")
For i = 0 To UBound(aryPath)
lgWnd = objShell.Windows.Count
Shell "C:\Windows\Explorer.exe " & aryPath(i), vbNormalFocus
Do
DoEvents
Loop Until objShell.Windows.Count > lgWnd
If i = 0 Then Lpt = Rt.Left: Tpt = Rt.Top: wd = wd / 2: ht = ht
If i = 1 Then Lpt = Rt.Right - wd: Tpt = Rt.Top: ht = ht / 2
If i = 2 Then Lpt = Lpt: Tpt = Rt.Bottom - ht: ht = Tpt
With objShell.Windows(objShell.Windows.Count - 1)
ShowWindow .hwnd, vbNormalFocus
.Left = Lpt
.Top = Tpt
.Width = wd
.Height = ht
End With
Next
End Sub
一例なので上手くいかなかったら忘れてください
すごいです。うまくできました。
質問と補足です。
●フォルダパスを指定していないですが、なぜ、フォルダちゃんと開くのでしょうか?
⇒【フォルダパス】C:\Users\2020\Desktop\フォルダ A
●'? フォルダ 半角スペースはあるの?A
⇒フォルダ A⇒フォルダとAの間に半角スペースがあるのです
No.2
- 回答日時:
こんにちは。
うーん、、大分面倒かなと思います。
私の知る方法は WindowsAPI を幾つか使います。
大まかな流れは次の通り。記憶のみで書いてるので間違いあったらすみません。
1. SystemParametersInfo でプライマリーモニターのタスクバー除きのサイズを調べる
2. 1.の結果から3つのウインドウサイズと位置を計算
3. shell 等でウインドウを開く
4. shell の戻り値を OpenProcess に渡して、ウインドウハンドルを調べる
5. MoveWindow でウインドウの移動、サイズを変更
帰宅して他に回答がなければサンプル書いてみますが、他にもっと簡単な方法があれば私も知りたいです。
No.1
- 回答日時:
こんにちは
直接の回答ではありませんが・・
「POモニター」が何を意味しているのか分かりませんけれど、ご提示のようなレイアウトにするには、
・モニターのサイズを取得する
・フォルダを開いてサイズ・位置を指定する
ことが必要になります。
スクリーンサイズをW、Hとするなら、それぞれのウィンドウ位置を(0,0)、(W/2,0)、(W/2,H/2)に指定し、サイズはw=W/2、h=H(またはH/2)に指定することで可能でしょう。
モニタサイズの取得方法は、例えば
https://www.moug.net/tech/acvba/0020033.html
ウィンドウ位置・サイズの指定は例えば
https://okwave.jp/qa/q8253596.html
などで可能なようですので、これらを組み合わせれば実現できるものと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Visual Basic(VBA) あるフォルダーのファイルを違う親フォルダーのサブフォルダーに移したい 11 2023/02/15 19:00
- Android VBA、フォルダのパスに環境文字 ㉑ があり、VBAが機能しません。 2 2022/07/27 09:16
- Excel(エクセル) 【VBA】ファイルパスに半角スペースが入ると、VBAが動かない 5 2022/08/04 20:52
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Excel(エクセル) 【マクロ】ファイルを古い順に、1個ずつ移動する 1 2022/09/06 20:30
- Visual Basic(VBA) 【マクロ】フォルダにファイルが1つも無い時に、ファイルがありませんとメッセージを表示する 4 2022/08/28 08:48
- Excel(エクセル) マクロのコードを、少しでも削って短くしたい 3 2022/08/30 07:46
- Excel(エクセル) 【マクロ】エラーが発生⇒実行時エラー58既に同名のファイルが存在 5 2022/08/31 10:03
このQ&Aを見た人はこんなQ&Aも見ています
-
カンパ〜イ!←最初の1杯目、なに頼む?
飲み会で最初に頼む1杯、自由に頼むとしたら何を頼みますか? 最初はビールという縛りは無しにして、好きなものを飲むとしたら何を飲みたいですか。
-
「平成」を感じるもの
「昭和レトロ」に続いて「平成レトロ」なる言葉が流行しています。 皆さんはどのようなモノ・コトに「平成」を感じますか?
-
「これはヤバかったな」という遅刻エピソード
寝坊だったり、不測の事態だったり、いずれにしても遅刻の思い出はいつ思い出しても冷や汗をかいてしまいますよね。
-
いけず言葉しりとり
はんなりと心にダメージを与える「いけず言葉」でしりとりをしましょう。 「あ」あら〜しゃれた服着てはりますな 遠くからでもわかりましたわ
-
とっておきの「まかない飯」を教えて下さい!
飲食店で働く方だけが食べられる、とっておきの「まかない飯」。 働いてらっしゃる方がSNSなどにアップしているのを見ると、表のメニューには出てこない秘密感もあって、「食べたい!!」と毎回思ってしまいます。
-
【マクロ】フォルダを2つのモニターの定位置に並べたい
Excel(エクセル)
-
VBAで既に開いている別アプリケーションのオブジェクトを得る
Visual Basic(VBA)
-
指定したフォルダーを最前面表示にする方法
Visual Basic(VBA)
-
-
4
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
5
Excelのセルにユーザー名を表示する方法
Excel(エクセル)
-
6
2画面表示でのVBAのボタン押下後のform表示の位置
Excel(エクセル)
-
7
excel VBA 特定の文字列を含むフォルダを開く方法
Excel(エクセル)
-
8
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
9
A列に記載されているフォルダを閉じるには
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フォルダのサムネイル画像
-
EPSON PM-A820 のスキャン
-
excel VBA 部分一致の名前をパ...
-
撮影後、SDカードに作成される...
-
【マクロ】フォルダを2つのモ...
-
【マクロ】フォルダを3つ、PO...
-
大量のフォルダへのハイパーリ...
-
C:\\Documents and Settingsが...
-
お気に入りフォルダの名前はど...
-
NetBTエラーとbrowserエラーが多発
-
CHKDSKの実行を解除したい
-
java auto updaterとは何でしょ...
-
Thunderbird 振り分けされなく...
-
fgetsのfはどういう意味でしょ...
-
エクセルで定期的(30分おき)...
-
Tera Termでのコマンド流し込み...
-
2010でShiftキーを使っても自動...
-
SSDのTrimって毎日実行していい...
-
bat 処理の中止
-
MODE関数を文字でできる関数は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フォルダのサムネイル画像
-
撮影後、SDカードに作成される...
-
元のフォルダに矢印キーで帰りたい
-
お気に入りフォルダの名前はど...
-
大量のフォルダへのハイパーリ...
-
C:\\Documents and Settingsが...
-
excel VBA 部分一致の名前をパ...
-
フォルダについて。
-
OUTLOOK連絡先をグループ分けす...
-
エクセルVBAで相対パスでフォル...
-
excel VBA 特定の文字列を含む...
-
バッチファイルの親フォルダを...
-
【マクロ】フォルダを2つのモ...
-
ディレクトリ数のみを取得する...
-
Explorerのフォルダウインドウ...
-
謎のフォルダ「ドネュメント」
-
I386フォルダの役目とは
-
お気に入りに追加したのに表示...
-
AccessVBAで特定の文字を含むフ...
-
PCで、FF11のマクロデータを移...
おすすめ情報