探検
Excel VBA 質問スレ Part51
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スププ Sd4a-O827)
2017/11/08(水) 11:26:30.13ID:+KUB1/9hdスレ立ての際は一行目に
!extend:checked:vvvvv:1000:512
と入れてスレ立てして下さい
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※関連スレ
VBAなんでも質問スレ Part2
http://mevius.2ch.net/test/read.cgi/tech/1432173164/
Access VBA 質問スレ Part1
http://mevius.2ch.net/test/read.cgi/tech/1328536426/
Excel総合相談所 126
https://mevius.2ch.net/test/read.cgi/bsoft/1496487719/
※前スレ
Excel VBA 質問スレ Part50
http://mevius.2ch.net/test/read.cgi/tech/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
2デフォルトの名無しさん (スププ Sd62-O827)
2017/11/08(水) 11:28:45.81ID:+KUB1/9hd 早速質問
今vbaでマップ使って
とある表の集計を行なっております
一つのkeyに対しアイテムが複数あるので
配列で入れようと思ったのですがうまくいきません
何か良い方法はありませんか?
今vbaでマップ使って
とある表の集計を行なっております
一つのkeyに対しアイテムが複数あるので
配列で入れようと思ったのですがうまくいきません
何か良い方法はありませんか?
3デフォルトの名無しさん (エーイモ SE8d-dVlt)
2017/11/08(水) 18:45:21.53ID:oD3+O0e3E Dim dic
Dim a()
redim a(1)
a(0)="test1"
a(1)="test2"
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "key1", "アテネ"
dic.Add "key2", "ベオグラード"
dic.Add "key3", a
msgbox dic("key3")(0)
msgbox dic("key3")(1)
Dim a()
redim a(1)
a(0)="test1"
a(1)="test2"
Set dic = CreateObject("Scripting.Dictionary")
dic.Add "key1", "アテネ"
dic.Add "key2", "ベオグラード"
dic.Add "key3", a
msgbox dic("key3")(0)
msgbox dic("key3")(1)
4デフォルトの名無しさん (ワッチョイ 4961-U2HA)
2017/11/08(水) 19:49:47.05ID:aX63wCUb05デフォルトの名無しさん (スプッッ Sd62-3K0w)
2017/11/08(水) 20:24:39.43ID:VRSOCYqCd マップをやめて配列「で」入れる
って意味にとってたけど
マップの中に配列「を」入れる
って意味かよ
って意味にとってたけど
マップの中に配列「を」入れる
って意味かよ
6デフォルトの名無しさん (ワッチョイ 5f8a-lB0v)
2017/11/09(木) 13:04:15.65ID:W66xKF5F0 アイテムが複数あっても同じkey 使えばいいんじゃねと思った
7デフォルトの名無しさん (ワッチョイ 5fb3-Q4Ea)
2017/11/09(木) 14:39:20.19ID:goVr3jSD0 集計をしたいって事じゃない?
8デフォルトの名無しさん (ドコグロ MM7f-kkiU)
2017/11/09(木) 20:19:01.12ID:HS5Oh82mM >>6
やってみてから発言することをお勧めする
やってみてから発言することをお勧めする
9デフォルトの名無しさん (ワッチョイ ffe9-d8GJ)
2017/11/09(木) 20:29:22.40ID:7b9amfpv0 いい言葉を見つけた
Those who know don't talk. (知ってる人は教えようとしない)
Those who talk don't know. (教えてる人はあまり知らない)
Those who know don't talk. (知ってる人は教えようとしない)
Those who talk don't know. (教えてる人はあまり知らない)
10デフォルトの名無しさん (ワッチョイ 5f61-KQ8c)
2017/11/09(木) 21:19:05.18ID:F89uizh+0 立て乙です。
自宅にエクセル環境が無いのでうろ覚えで
細かい間違いはあるかもですが、該当箇所以外はokという前提です
日本という名前のブック
各都道府県名のシート
があるとき
Dim Bn as Workbook
Dim T as Worksheet
Set Bn = Workbooks("日本")
Set T =Worksheets("東京都")
Workbooks("日本").Worksheets("東京都").cells(1,1) = "123"
Bn.T.cells(1,2) = "456"
を実行すると
上段は問題なく実行されて、東京都シートのセルA1に123が入力されますが
下段でエラーがでてしまいます。また
Bn.Worksheets("東京都").cells(1,2) = "456"
T.Worksheets("東京都").cells(1,2) = "456"
のどちらでも動きました
ブックもシートも両方変数で指定するとエラーになってしまうのでしょうか?
ブックもシートもそれなりに切り替えるので、可能であれば別で指定したいのですが……
心当たりがあればご教示いただけると助かります。
自宅にエクセル環境が無いのでうろ覚えで
細かい間違いはあるかもですが、該当箇所以外はokという前提です
日本という名前のブック
各都道府県名のシート
があるとき
Dim Bn as Workbook
Dim T as Worksheet
Set Bn = Workbooks("日本")
Set T =Worksheets("東京都")
Workbooks("日本").Worksheets("東京都").cells(1,1) = "123"
Bn.T.cells(1,2) = "456"
を実行すると
上段は問題なく実行されて、東京都シートのセルA1に123が入力されますが
下段でエラーがでてしまいます。また
Bn.Worksheets("東京都").cells(1,2) = "456"
T.Worksheets("東京都").cells(1,2) = "456"
のどちらでも動きました
ブックもシートも両方変数で指定するとエラーになってしまうのでしょうか?
ブックもシートもそれなりに切り替えるので、可能であれば別で指定したいのですが……
心当たりがあればご教示いただけると助かります。
11デフォルトの名無しさん (ワッチョイ ffe9-FM5+)
2017/11/09(木) 21:25:44.32ID:7b9amfpv012デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
2017/11/09(木) 22:48:42.62ID:5mp2zjAU013デフォルトの名無しさん (ワッチョイ 7fb3-kkiU)
2017/11/09(木) 23:25:52.19ID:r1UnXx8k01410 (ワッチョイ 5f61-KQ8c)
2017/11/09(木) 23:38:24.62ID:F89uizh+0 返答ありがとうございます。
やっぱり両方同時に変数指定はできないんですね……
何というか、指定先が変わる度にセットするのは見づらいような感じがしてまして
明日何とか考えてみようと思います。ありがとうございました
やっぱり両方同時に変数指定はできないんですね……
何というか、指定先が変わる度にセットするのは見づらいような感じがしてまして
明日何とか考えてみようと思います。ありがとうございました
15デフォルトの名無しさん (ワッチョイ 7f1e-F71m)
2017/11/09(木) 23:57:00.50ID:3LOjlHPk0 ●●●宇宙の外側に何があるのか?●●●
http://jbbs.livedoor.jp/bbs/read.cgi/stud▲y/3729/1069922074/84-87
この掲示板(万▲有サロン)に優秀な書き▲込みをして、総額148万円の賞金をゲットしよう!(*^^)v
http://jbbs.livedoor.jp/stu▲dy/3729/ →リンクが不良なら、検▲索窓に入れる!
http://jbbs.livedoor.jp/bbs/read.cgi/stud▲y/3729/1069922074/84-87
この掲示板(万▲有サロン)に優秀な書き▲込みをして、総額148万円の賞金をゲットしよう!(*^^)v
http://jbbs.livedoor.jp/stu▲dy/3729/ →リンクが不良なら、検▲索窓に入れる!
16デフォルトの名無しさん (ワッチョイ 7fe7-TPjW)
2017/11/10(金) 00:13:48.87ID:anK9LaNF0 >>10
名前(Workbooks)が一致していればいいってものじゃない。
オブジェクト.メンバ という構文なんだよ。メンバとはそのオブジェクトが持っているメソッドとかプロパティとかのこと。
しかし Bn.T と書くと、オブジェクトとオブジェクトを . で繋いだことになり、これは意味不明なものになる。
名前(Workbooks)が一致していればいいってものじゃない。
オブジェクト.メンバ という構文なんだよ。メンバとはそのオブジェクトが持っているメソッドとかプロパティとかのこと。
しかし Bn.T と書くと、オブジェクトとオブジェクトを . で繋いだことになり、これは意味不明なものになる。
17デフォルトの名無しさん (アークセー Sx33-dU/l)
2017/11/10(金) 02:06:21.33ID:HkDX0vBax コレクションかユーザー定義クラス使うかしたらいいと思うが
18デフォルトの名無しさん (アークセー Sx33-dU/l)
2017/11/10(金) 02:16:45.89ID:HkDX0vBax >>16
質問者はオブジェクト.メンバの構文の意味が分かってなくてオブジェクトブラウザも見たことない人なんだろうな
オブジェクトのメンバ名を指定してメソッド関数やプロパティ関数を呼び出すことで別のオブジェクトインスタンスのコントロールを取得しているんだってことが理解できてないんだろう
質問者はオブジェクト.メンバの構文の意味が分かってなくてオブジェクトブラウザも見たことない人なんだろうな
オブジェクトのメンバ名を指定してメソッド関数やプロパティ関数を呼び出すことで別のオブジェクトインスタンスのコントロールを取得しているんだってことが理解できてないんだろう
19デフォルトの名無しさん (ワッチョイ ff9d-QXYS)
2017/11/10(金) 10:37:51.15ID:3nhwt3Be0 >>10
>T.Worksheets("東京都").cells(1,2) = "456"
これホントに動いたのか?
WorksheetにWorksheetsプロパティとか無かったはずだけど
何がやりたいかよくわからんが
とりあえずブック名とシート名受け取って該当Worksheet返す関数作ればいいんじゃないかと
>T.Worksheets("東京都").cells(1,2) = "456"
これホントに動いたのか?
WorksheetにWorksheetsプロパティとか無かったはずだけど
何がやりたいかよくわからんが
とりあえずブック名とシート名受け取って該当Worksheet返す関数作ればいいんじゃないかと
20デフォルトの名無しさん (スップ Sd1f-l+iR)
2017/11/10(金) 12:27:51.12ID:VovrPQN6d ワークシートchangeでtargetのA1が代わったらコードが流れるようにしてて、それ以外はexitで抜けてるんだけど、コードがセルに転記してて毎回changeの所に戻ってはexit、戻ってはexitで見辛いのはなんとかなりませんか?
21デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
2017/11/10(金) 13:11:21.32ID:ooNCyCJx0 >>20
マクロの実行中に何度もセルに書き込みが発生する処理が美しくないので設計を見直す。
マクロの実行中に何度もセルに書き込みが発生する処理が美しくないので設計を見直す。
22デフォルトの名無しさん (ワッチョイ 5f8a-zl2n)
2017/11/10(金) 13:45:49.16ID:Fw2iLfOX0 作った人に聞いてみたら?
23デフォルトの名無しさん (ササクッテロル Sp33-Q4Ea)
2017/11/10(金) 17:25:45.54ID:6gcbKBqNp EnableEvents=False
でイベント制御したらだめなの?
でイベント制御したらだめなの?
24デフォルトの名無しさん (ガックシ 064f-x5jG)
2017/11/10(金) 18:26:04.03ID:DKnywXcl6 SolverOk関数のEngineまたはEngineDescの引数の規定値って何でしょうか?
25デフォルトの名無しさん (ワッチョイ ff9d-QXYS)
2017/11/11(土) 03:04:03.09ID:pW9oGH+o026デフォルトの名無しさん (ワッチョイ 7f41-sJj3)
2017/11/11(土) 08:36:27.60ID:Smy5DbHD0 MP4ファイルのプロパティ値を取得するプログラムでエラーが発生してしまいます
★の箇所で「'NameSpace'メソッドは失敗しました:'IShellDispatch6'オブジェクト」のダイアログが出ます
参照設定Microsoft Shell Controls and automaitonを追加してもだめでした
解決方法がわかれば教えてください
Private Sub CommandButton1_Click()
Dim Shell, Folder
Set Shell = CreateObject("Shell.Application")
Set Folder = Shell.Namespace(range("A1").Value) ←←←★
★の箇所で「'NameSpace'メソッドは失敗しました:'IShellDispatch6'オブジェクト」のダイアログが出ます
参照設定Microsoft Shell Controls and automaitonを追加してもだめでした
解決方法がわかれば教えてください
Private Sub CommandButton1_Click()
Dim Shell, Folder
Set Shell = CreateObject("Shell.Application")
Set Folder = Shell.Namespace(range("A1").Value) ←←←★
27デフォルトの名無しさん (ワッチョイ 7f41-sJj3)
2017/11/11(土) 09:03:00.19ID:Smy5DbHD0 >>26
こちらのサンプルでとりあえず動きましたお騒がせしました
Dim FSO As Variant, SHell As Variant, Folder As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHell = CreateObject("Shell.Application")
Set Folder = SHell.Namespace(FSO.GetFile(Songs(1)).ParentFolder.Path)
Cells(1, 1) = Folder.GetDetailsOf(Folder.ParseName(Target), 0)
こちらのサンプルでとりあえず動きましたお騒がせしました
Dim FSO As Variant, SHell As Variant, Folder As Variant
Set FSO = CreateObject("Scripting.FileSystemObject")
Set SHell = CreateObject("Shell.Application")
Set Folder = SHell.Namespace(FSO.GetFile(Songs(1)).ParentFolder.Path)
Cells(1, 1) = Folder.GetDetailsOf(Folder.ParseName(Target), 0)
28デフォルトの名無しさん (ワッチョイ ff81-ouqv)
2017/11/11(土) 12:39:17.23ID:KQr/r2/c0 エクセル2013を使用しています。
今、日付を手入力しているのですが、何かで見たのですが
カレンダーから選択して入力できる機能があるのですがエクセルでもできる方法ないでしょうか?
いろいろさがした所アクセスはできるのですがエクセルは標準でもなく
カレンダーコントールなるものあるみたいですが、アクセスもインストールしていないので
VBAマクロの中にもありません
今、日付を手入力しているのですが、何かで見たのですが
カレンダーから選択して入力できる機能があるのですがエクセルでもできる方法ないでしょうか?
いろいろさがした所アクセスはできるのですがエクセルは標準でもなく
カレンダーコントールなるものあるみたいですが、アクセスもインストールしていないので
VBAマクロの中にもありません
29デフォルトの名無しさん (アウアウカー Sad3-wagG)
2017/11/11(土) 14:37:40.42ID:iMxfLIL8a >>14
両方同時にではない。
Worksheetを変数に入れたということはブック情報も込みで入ってる。
だから便利なの。
Aブックのαシートを変数に入れてもその変数でBブックのαシートにアクセスできるわけじゃない。
君のBn.T式のやり方だとBブックのαシートにもアクセスできることになる。
それはBn.Worksheets(T)式と変わらない。
一方、もしBブックのαシートにアクセス出来ないのならBn.T式の意味が無い。
T式で良いわけだから。
両方同時にではない。
Worksheetを変数に入れたということはブック情報も込みで入ってる。
だから便利なの。
Aブックのαシートを変数に入れてもその変数でBブックのαシートにアクセスできるわけじゃない。
君のBn.T式のやり方だとBブックのαシートにもアクセスできることになる。
それはBn.Worksheets(T)式と変わらない。
一方、もしBブックのαシートにアクセス出来ないのならBn.T式の意味が無い。
T式で良いわけだから。
30デフォルトの名無しさん (アウアウカー Sad3-wagG)
2017/11/11(土) 15:59:40.18ID:D533txsCa >>27
動くのは結構なことだけどFSO無くてもファイル情報取れるよ。
他の部分で便利にFSO使ってるなら良いんだけどその部分だけ見たら無駄だよね。
Dim objShell As Object
Dim objFolder As Object
Dim objFItm As Object
Set objShell=CreateObject("Shell.Application")
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)
参照設定とか書いてるけど、それぞれの意味分かってる?
CreateObjectってのは、その場で名前を元にオブジェクトを作成する。
だからコード書いてる間にはどんなメソッドやプロパティがあるか分からないからインテリセンスでの候補が出ることもない。
参照設定は使うオブジェクトを事前に指定することでオブジェクトの型とかメソッド、プロパティにアクセス(インテリセンス等)しやすくするためのもので、CreateObject使ったり、オブジェクトの型をObjectにしてるんだったら意味がない。
CreateObjectで生成出来ないのも有るし参照設定のがある意味上位互換だけど人にコードを提示する場合は参照設定するよう指示も書かなくちゃなんないからCreateObjectでの例が多いんだけどさ。
もちろん、参照設定したら動くようになるなんてことも無い。
Dim objShell As Shell
Dim objFolder As Folder
Dim objFItm As FolderItem
Set objShell=New Shell
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)
動くのは結構なことだけどFSO無くてもファイル情報取れるよ。
他の部分で便利にFSO使ってるなら良いんだけどその部分だけ見たら無駄だよね。
Dim objShell As Object
Dim objFolder As Object
Dim objFItm As Object
Set objShell=CreateObject("Shell.Application")
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)
参照設定とか書いてるけど、それぞれの意味分かってる?
CreateObjectってのは、その場で名前を元にオブジェクトを作成する。
だからコード書いてる間にはどんなメソッドやプロパティがあるか分からないからインテリセンスでの候補が出ることもない。
参照設定は使うオブジェクトを事前に指定することでオブジェクトの型とかメソッド、プロパティにアクセス(インテリセンス等)しやすくするためのもので、CreateObject使ったり、オブジェクトの型をObjectにしてるんだったら意味がない。
CreateObjectで生成出来ないのも有るし参照設定のがある意味上位互換だけど人にコードを提示する場合は参照設定するよう指示も書かなくちゃなんないからCreateObjectでの例が多いんだけどさ。
もちろん、参照設定したら動くようになるなんてことも無い。
Dim objShell As Shell
Dim objFolder As Folder
Dim objFItm As FolderItem
Set objShell=New Shell
Set objFolder=objShell.Namespace("C:¥Users¥Hoge¥Desktop")
Set objFItm=objFolder.ParseName("fuga.txt")
Debug.Print objFolder.GetDetailsOf(objFItm,3)
31デフォルトの名無しさん (ワッチョイ ffe9-81rD)
2017/11/11(土) 16:02:23.93ID:vmoy6u3Z0 参照設定は極力しないほうが良いよね
参照設定を忘れてドハマリすることがたまによくある
参照設定を忘れてドハマリすることがたまによくある
32デフォルトの名無しさん (アウアウカー Sad3-wagG)
2017/11/11(土) 16:04:50.69ID:D533txsCa33デフォルトの名無しさん (ワッチョイ ffe9-81rD)
2017/11/11(土) 17:24:06.37ID:vmoy6u3Z034デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
2017/11/12(日) 05:18:36.72ID:Dmy+tyrb0 >>28
UserForm使えば簡単に自作できますよ。
年と月用のテキストボックスをつけて、年と月それぞれ増減させるために、スピンドルボタンをつける。
日付表示用のラベルを必要数用意。
年と月のテキストボックスの値に応じて、ラベルの表示を変更。
ラベルのクリックイベントで、年と月のテキストボックスとラベルのテキストを連結して、日付に変換。
ラベルのクリックイベントは、クラスでまとめれば、クリックイベントをたくさん書く必要もありません。
UserForm使えば簡単に自作できますよ。
年と月用のテキストボックスをつけて、年と月それぞれ増減させるために、スピンドルボタンをつける。
日付表示用のラベルを必要数用意。
年と月のテキストボックスの値に応じて、ラベルの表示を変更。
ラベルのクリックイベントで、年と月のテキストボックスとラベルのテキストを連結して、日付に変換。
ラベルのクリックイベントは、クラスでまとめれば、クリックイベントをたくさん書く必要もありません。
35デフォルトの名無しさん (ワッチョイ dff7-lMX+)
2017/11/12(日) 06:52:57.92ID:UfHz6itl0 スピンボタンな
36デフォルトの名無しさん (スップ Sd9f-l+iR)
2017/11/12(日) 11:00:33.46ID:61FaOR6Wd コードっていろんなパターンあってたくさん書いてると思うんだけど、コードの保管ってメモ帳??
37デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
2017/11/12(日) 11:17:54.47ID:QqFg5+2e038デフォルトの名無しさん (スップ Sd9f-l+iR)
2017/11/12(日) 11:23:55.96ID:61FaOR6Wd 連投すまんが、セルを方眼紙にして、フォームの中に直線コマンド、円コマンド、角コマンド等CADみたいなそれぞれ押したらそれが、反映されて作画って出来る?
39デフォルトの名無しさん (ワッチョイ 7feb-hKlY)
2017/11/12(日) 11:28:28.89ID:QqFg5+2e040デフォルトの名無しさん (ワッチョイ ffe9-yeIO)
2017/11/12(日) 12:15:44.63ID:chRcmei3041デフォルトの名無しさん (ワッチョイ ffe9-yeIO)
2017/11/12(日) 12:16:32.95ID:chRcmei3042デフォルトの名無しさん (ワッチョイ 5fb3-Q+Fb)
2017/11/12(日) 17:01:38.36ID:eJwcw8mO043デフォルトの名無しさん (ワッチョイ 5fb3-Q+Fb)
2017/11/12(日) 17:02:12.03ID:eJwcw8mO0 >>36
モジュールをそのまま保存できるだろ
モジュールをそのまま保存できるだろ
44デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
2017/11/12(日) 18:22:11.84ID:syzs4wk80 >>42
他に手軽な方法がないからUserFormで作れるようにしておくのが一番いいぞ。
他に手軽な方法がないからUserFormで作れるようにしておくのが一番いいぞ。
45デフォルトの名無しさん (ワッチョイ 5fb3-Q+Fb)
2017/11/12(日) 18:36:30.88ID:eJwcw8mO0 >>44
まあそれしかないのはそうなんだけどさ
まあそれしかないのはそうなんだけどさ
46デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
2017/11/12(日) 20:02:01.58ID:Dmy+tyrb0 vbのランタイムをインストールすればDateTimePicker使えるけど、Formでカレンダー自作しておけば簡単に使い回したり配布出来るから一個作っておくといいと思いますよ。
47デフォルトの名無しさん (ワッチョイ 5fbd-vLjR)
2017/11/12(日) 22:30:08.29ID:XHSQB0UC0 フォルダ1
┗XXX29年10月.xlsx
XXX29年11月.xlsx
YYY29年10月.xlsx
YYY29年11月.xlsx
フォルダ2
フォルダN
フォルダ1内に今月のファイルがあったらコピーして名前を翌月に変更して保存
これをフォルダNまで同じように処理する方法教えてください
年月の取得はユーザーフォームが理想ですが全く分らんので
マクロ実行用ファイルのA1に年、A2に月入力して取得する感じを考えてます
┗XXX29年10月.xlsx
XXX29年11月.xlsx
YYY29年10月.xlsx
YYY29年11月.xlsx
フォルダ2
フォルダN
フォルダ1内に今月のファイルがあったらコピーして名前を翌月に変更して保存
これをフォルダNまで同じように処理する方法教えてください
年月の取得はユーザーフォームが理想ですが全く分らんので
マクロ実行用ファイルのA1に年、A2に月入力して取得する感じを考えてます
48デフォルトの名無しさん (ワッチョイ 5fb3-Q+Fb)
2017/11/12(日) 23:03:42.29ID:eJwcw8mO0 >>47
今月のファイルを探したいならDate関数使えば今日の日付が出るからそっからformatなりyearとmonthくみあわせるなりで取得すればいいからわざわざ入力させる必要がないね
フォルダないのファイル名の取得ならググればいくらでも出てくるぞ
俺はfilesystemobjectを使うけど
今月のファイルを探したいならDate関数使えば今日の日付が出るからそっからformatなりyearとmonthくみあわせるなりで取得すればいいからわざわざ入力させる必要がないね
フォルダないのファイル名の取得ならググればいくらでも出てくるぞ
俺はfilesystemobjectを使うけど
49デフォルトの名無しさん (ワッチョイ dff7-lMX+)
2017/11/12(日) 23:12:47.43ID:UfHz6itl0 >>47
まずは最初の部分だけ
今年 = Format(Now, "e")
今月 = Month(Now)
来月 = DateAdd("m", 1, Now)
年 = Format(来月, "e")
月 = Month(来月)
まずは最初の部分だけ
今年 = Format(Now, "e")
今月 = Month(Now)
来月 = DateAdd("m", 1, Now)
年 = Format(来月, "e")
月 = Month(来月)
50デフォルトの名無しさん (ワッチョイ dff7-lMX+)
2017/11/12(日) 23:16:31.66ID:UfHz6itl0 変数に残す必要なかった
今月 = Format(Now, "ee年mm月")
来月 = Format(DateAdd("m", 1, Now), "ee年mm月")
今月 = Format(Now, "ee年mm月")
来月 = Format(DateAdd("m", 1, Now), "ee年mm月")
51デフォルトの名無しさん (ワッチョイ ff9f-wagG)
2017/11/13(月) 00:50:26.46ID:cup53tTa0 どうしてもカレンダー欲しいんだったらSysDateTimePick32使って頑張るだろうな。
面倒くさいけど他のコントロールもMSFormsを使わないウィンドウ作成もやったことある。
きちんとプロパティ作るの面倒くさいから使いたいものしか実装してないけど。
面倒くさいけど他のコントロールもMSFormsを使わないウィンドウ作成もやったことある。
きちんとプロパティ作るの面倒くさいから使いたいものしか実装してないけど。
52デフォルトの名無しさん (ワッチョイ ff9f-wagG)
2017/11/13(月) 00:58:21.51ID:cup53tTa0 >>48
ファイル名取得にfilesystemobjectは激重だった気がする。
Dir関数で頑張る方がよっぽど速い。
これが原因でfilesystemobjectは使わなくなってしまった。
他では速いものもあるのに食わず嫌いになった。
ファイル名取得にfilesystemobjectは激重だった気がする。
Dir関数で頑張る方がよっぽど速い。
これが原因でfilesystemobjectは使わなくなってしまった。
他では速いものもあるのに食わず嫌いになった。
53デフォルトの名無しさん (アークセー Sx33-dU/l)
2017/11/13(月) 01:02:34.35ID:AtJ4gbq1x >>52
処理対象のファイルのロングパスがDirの引数の字数制限を越えてるときはどうするの?
処理対象のファイルのロングパスがDirの引数の字数制限を越えてるときはどうするの?
54デフォルトの名無しさん (ワッチョイ 7fb3-kkiU)
2017/11/13(月) 06:21:29.66ID:gczEvEcT0 そもそも劇重なんて思ったことないが...
55デフォルトの名無しさん (スップ Sd9f-Lcj1)
2017/11/13(月) 08:01:19.66ID:4dN82Cnsd なんか別のものと勘違いしてるんじゃないか
56デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
2017/11/13(月) 08:26:57.35ID:pr331NCP0 たかがファイル名を取得するのに処理負荷を感じるほど重くなるとか考えられないな。
読み取り先が等速ドライブに突っ込んだCDだったとか、回線の細いNASだったとかなら分かるけど。
読み取り先が等速ドライブに突っ込んだCDだったとか、回線の細いNASだったとかなら分かるけど。
57デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 09:22:13.43ID:mbcSFLNRa58デフォルトの名無しさん (ドコグロ MMe3-kkiU)
2017/11/13(月) 12:42:29.30ID:IBZYfbeXM またVBAでクラス語る奴が来ちゃったよ...
59デフォルトの名無しさん (アウアウカー Sad3-6ii5)
2017/11/13(月) 12:44:49.20ID:U+ZWq00Pa なんかWindows10でマクロの挙動が安定しなくなったんだけど、そういうのある?
60デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 13:17:08.13ID:GJIgK8HXa >>58
語ってるつもりはないし、普通に機能としてあるのに使ってバカにされる筋合いもない
語ってるつもりはないし、普通に機能としてあるのに使ってバカにされる筋合いもない
61デフォルトの名無しさん (ワッチョイ 5fb3-4T/N)
2017/11/13(月) 13:21:12.07ID:ck+reS0/0 vbaでクラス使うメリットあるの?
一応あるインターフェースは使い物にならないし、継承も使えないし、コンストラクタに引数も設定出来ない。
vbaでクラス使うメリット教えて
一応あるインターフェースは使い物にならないし、継承も使えないし、コンストラクタに引数も設定出来ない。
vbaでクラス使うメリット教えて
62デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 13:21:56.90ID:GJIgK8HXa >>61
カプセル化
カプセル化
63デフォルトの名無しさん (スップ Sd9f-Lcj1)
2017/11/13(月) 13:43:14.72ID:4dN82Cnsd64デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 13:48:11.54ID:GJIgK8HXa というか、クラスを使うデメリットって逆に何
65デフォルトの名無しさん (スプッッ Sd7f-lMX+)
2017/11/13(月) 13:52:55.00ID:HKnEhqdPd そもそもクラスが必要になるほど大規模なコードを書く用途にVBAは向いてない、使うべきじゃない
ちゃんとした開発環境を使え
会社が許可しないなら転職するか我慢するかの二択、あるいは出世して自分で規則を変えろ
仕事の能率がアップして利益が増えるんなら反対する理由はないだろ
ちゃんとした開発環境を使え
会社が許可しないなら転職するか我慢するかの二択、あるいは出世して自分で規則を変えろ
仕事の能率がアップして利益が増えるんなら反対する理由はないだろ
66デフォルトの名無しさん (ワッチョイ dfb5-+bRG)
2017/11/13(月) 15:44:46.11ID:XD2Cv4t70 自分の好きなコードが書けないから転職とかww
67デフォルトの名無しさん (ワッチョイ 7faf-2WZT)
2017/11/13(月) 15:54:24.73ID:IBY/CNJo0 不合理なことを押し付けてくる会社なら、転職も選択肢ってことだろ。日本語ダイジョブ?
68デフォルトの名無しさん (ワッチョイ ffb9-sJj3)
2017/11/13(月) 16:07:38.26ID:pr331NCP0 クラスを使うとシンプルに表現出来る場合がある。規模の問題では無い。
普通に使ってるとなかなか活用するイメージが湧かないけど、覚えておくと役に立つよ。
普通に使ってるとなかなか活用するイメージが湧かないけど、覚えておくと役に立つよ。
69デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 17:08:14.63ID:GJIgK8HXa ここでも前に書いたけど、配列のラッパークラスとか、一度作ると便利よ
コレクションだと微妙に取り回し悪かったりするからね
これ以上はスレチかな
コレクションだと微妙に取り回し悪かったりするからね
これ以上はスレチかな
70デフォルトの名無しさん (スップ Sd9f-Lcj1)
2017/11/13(月) 17:09:30.17ID:4dN82Cnsd71デフォルトの名無しさん (アウアウカー Sad3-wagG)
2017/11/13(月) 17:20:46.73ID:78YzXPYPa FileSystemObjectのファイル一覧取得が遅いのなんて結構有名な話だと思うんだが。
ハードディスクにあるファイル名全部取ってくるとかすれば分かる。
昔、どっかに比較してる所が有ったんだが見つからないな。
Win32APIが一番速かったがDirでもそんなに大きな違いは出なかった。
が、FileSystemObjectは糞遅い結果になってた。
そもそも自分で組んだら遅くてネットで調べたらやっぱり遅かったという。
ハードディスクにあるファイル名全部取ってくるとかすれば分かる。
昔、どっかに比較してる所が有ったんだが見つからないな。
Win32APIが一番速かったがDirでもそんなに大きな違いは出なかった。
が、FileSystemObjectは糞遅い結果になってた。
そもそも自分で組んだら遅くてネットで調べたらやっぱり遅かったという。
72デフォルトの名無しさん (アウアウカー Sad3-wagG)
2017/11/13(月) 17:23:43.47ID:78YzXPYPa クラスは凄く便利だが、無理に使う必要は無いと思う。
個人的には仕様を考えた段階でクラス使うのがぴったりと感覚で分かる。
そういう時以外は使わない。
個人的には仕様を考えた段階でクラス使うのがぴったりと感覚で分かる。
そういう時以外は使わない。
73デフォルトの名無しさん (アウアウオー Sa7f-Q+Fb)
2017/11/13(月) 17:47:02.85ID:GJIgK8HXa >>71
そうなんか
まあ、今んとこそんな大量のファイルのやり取りしたことないから体感したことなかったわ
まあ、その辺使うにしても生で扱うよりクラスでまとめちゃった方が取り回し良さそうだがね
その辺は好みなんだろうけどね
そうなんか
まあ、今んとこそんな大量のファイルのやり取りしたことないから体感したことなかったわ
まあ、その辺使うにしても生で扱うよりクラスでまとめちゃった方が取り回し良さそうだがね
その辺は好みなんだろうけどね
74デフォルトの名無しさん (ドコグロ MMe3-kkiU)
2017/11/13(月) 18:55:14.32ID:IBZYfbeXM >>64
まともな言語ならクラスを使うデメリットはないけどVBAのクラスは制限が多すぎて使う意味がない
まともな言語ならクラスを使うデメリットはないけどVBAのクラスは制限が多すぎて使う意味がない
75デフォルトの名無しさん (ワッチョイ ffe9-ySnM)
2017/11/13(月) 19:08:08.64ID:wM5leOdq076デフォルトの名無しさん (ワッチョイ 5f81-2HIz)
2017/11/13(月) 21:36:08.79ID:S878v5EG0 この流れで突然クソみたいな質問するの恐縮なのですが…
共有で使っているExcelのデータの行がランダムに大量に消える現象が起きてます
多分誰かがオートフィルタかけた状態でうっかり削除したんだと思うんですが、
消えた行に全く共通点が無いので「マクロにウイルスが付いたんだ!マクロやめろ!」って因縁付けられています
まずVBAにウイルスを仕込むならともかく、VBAを使用しているせいでウイルスに感染するって無いですよね?
あとこのコードに行を消すような要素があるか見てもらいたいです
オートフィルタをかけるだけの簡単なコードなんで無いと思うんですが周りに誰も聞ける人が居ないので一応…
簡単な指示だけどすごく頻繁に使うので消したくないんです
Sub filter1()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:="AA"
End Sub
Sub filter2()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:=""
End Sub
Sub filter3()
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
End Sub
共有で使っているExcelのデータの行がランダムに大量に消える現象が起きてます
多分誰かがオートフィルタかけた状態でうっかり削除したんだと思うんですが、
消えた行に全く共通点が無いので「マクロにウイルスが付いたんだ!マクロやめろ!」って因縁付けられています
まずVBAにウイルスを仕込むならともかく、VBAを使用しているせいでウイルスに感染するって無いですよね?
あとこのコードに行を消すような要素があるか見てもらいたいです
オートフィルタをかけるだけの簡単なコードなんで無いと思うんですが周りに誰も聞ける人が居ないので一応…
簡単な指示だけどすごく頻繁に使うので消したくないんです
Sub filter1()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:="AA"
End Sub
Sub filter2()
Range("K2").AutoFilter Field:=9, Criteria1:="<>"
Range("L2").AutoFilter Field:=10, Criteria1:=""
Range("O2").AutoFilter Field:=13, Criteria1:=""
End Sub
Sub filter3()
If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If
End Sub
77デフォルトの名無しさん (ワッチョイ 7f1e-EzKS)
2017/11/13(月) 21:42:36.96ID:zsNLMe3/0 シート保護かけてみるとか
78デフォルトの名無しさん (ワッチョイ ffe9-Ai73)
2017/11/13(月) 21:45:59.98ID:wM5leOdq0 >>76
ウィルスに感染していて、セキュリティをsageているためにウィルスが実行されているというパターンなら考えられるが
其れ以前の問題として
・オートフィルタをかける
・全体をコピー
・ペースト(値として貼り付けなど)
で行が減っている可能性のほうが高いと思う
この仕様
、意外と知られていないんじゃないかなぁ
ウィルスに感染していて、セキュリティをsageているためにウィルスが実行されているというパターンなら考えられるが
其れ以前の問題として
・オートフィルタをかける
・全体をコピー
・ペースト(値として貼り付けなど)
で行が減っている可能性のほうが高いと思う
この仕様
、意外と知られていないんじゃないかなぁ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 「どうしようもない」 ため息つくアジアの玄関口 中国の訪日自粛で−福岡市 [蚤の市★]
- NHK、受信料の未払い世帯に督促強化へ 民事手続きの新組織を設置 差し押さえなどの強制執行も ★2 [1ゲットロボ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」★2 [冬月記者★]
- んなっても良いお🏡
- 【悲報】高市早苗を妄信している今の日本人見ると80年前も市民は進んで戦争協力してたんだって理解出来るよね🥺 [616817505]
- 【超悲報】中国への武力行使、世論調査で「賛成」「どちらかといえば賛成」48.8% 「反対」「どちらかといえば反対」の44.2%を上回る [314039747]
- 日本人、歴史も経済も分からず貧乏に耐えかねて第二次日中戦争を求めてしまう…ヤバイよ [819729701]
- 【朗報】中国との戦争、世論調査で「賛成」が「反対」を上回るwwwwwwwww
- 識者「『フリーパレスチナ』とかイキってる連中が台湾の話になると『中国を怒らせるな!』ってなる。ほんと左翼の正義って薄っぺらい」 [279254606]
