[過去ログ]
Excel VBA 質問スレ Part68 (1002レス)
Excel VBA 質問スレ Part68 http://mevius.5ch.net/test/read.cgi/tech/1598756127/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
237: デフォルトの名無しさん (ワッチョイ 668e-0TEw) [] 2020/09/14(月) 20:46:20 ID:LbAMjRkX0 +=使えるだろうが http://mevius.5ch.net/test/read.cgi/tech/1598756127/237
238: デフォルトの名無しさん (ワッチョイ 0a4b-FgeY) [sage] 2020/09/14(月) 20:54:32 ID:P2Bbq2Qk0 使えません http://mevius.5ch.net/test/read.cgi/tech/1598756127/238
239: デフォルトの名無しさん (ワッチョイ 668e-0TEw) [] 2020/09/14(月) 20:56:59 ID:LbAMjRkX0 あー、VB.Netスレだと思ってた。スマン、死んでくる。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/239
240: デフォルトの名無しさん (ワッチョイ 0a4b-FgeY) [sage] 2020/09/14(月) 21:01:00 ID:P2Bbq2Qk0 逝かないで http://mevius.5ch.net/test/read.cgi/tech/1598756127/240
241: デフォルトの名無しさん (ササクッテロレ Spbd-jNRp) [sage] 2020/09/14(月) 21:01:06 ID:K/D9SivKp 制御構造は、キーワードの選び方がやや独特だけど、基本的なものについては、概ね他の言語と同等のことはできると思う。 どちらかというと、変数の宣言・定義が一緒にできないとか、配列・コレクションの要素参照が角括弧でなく丸括弧だとか、プロシージャ呼び出しの丸括弧の要否とかの方が不便さを感じるかな。まぁ、これらも慣れと言われればそれまでだが。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/241
242: デフォルトの名無しさん (ワッチョイ a95f-hUiG) [sage] 2020/09/14(月) 22:06:22 ID:9LhT2bwK0 gotoとラベルでできるっちゃあできるけどcontinueとbreakが欲しい http://mevius.5ch.net/test/read.cgi/tech/1598756127/242
243: デフォルトの名無しさん (ワッチョイ 393d-jNRp) [sage] 2020/09/14(月) 22:20:37 ID:8aASiVNY0 breakは、一応Exit 〜が概ね対応しているのでは(While〜Wendでは使えないけど)? 脱出するループを明示的に指定するので、breakより便利な場合もごくたまにある。もっとも、二重のForループから抜ける場合などは結局GoToに頼ることになるので中途半端ではあるけど。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/243
244: デフォルトの名無しさん (ワッチョイ 397c-bL/7) [sage] 2020/09/14(月) 23:27:12 ID:EMg7ooaX0 俺もたまにラベルでcontinueするけどめちゃくちゃ見栄え悪くて嫌 http://mevius.5ch.net/test/read.cgi/tech/1598756127/244
245: デフォルトの名無しさん (スップ Sd0a-4Ha4) [sage] 2020/09/15(火) 08:35:58 ID:Ny+/GOwEd >>232 >>233 基本、それは使わないな。 読みやすさとか構造の分かり易さ優先。 勿論、時と場合による。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/245
246: デフォルトの名無しさん (ワッチョイ 11cc-QmsY) [sage] 2020/09/15(火) 09:16:48 ID:Ty4jOAMY0 ユーザーフォームの2つリストボックスで選択された値を変数に代入する方法を教えてください ■Module1 Public str As String ■ThisWorkbook Sub tes1() UserForm1.Show vbModeless Range("A1").Value = str End Sub Sub tes2() Range("A2").Value = str End Sub http://mevius.5ch.net/test/read.cgi/tech/1598756127/246
247: デフォルトの名無しさん (ワッチョイ 11cc-QmsY) [sage] 2020/09/15(火) 09:17:03 ID:Ty4jOAMY0 ■UserForm1 Private Sub UserForm_Initialize() Dim r As Long For r = Year(Date) - 1 To Year(Date) + 2 UserForm1.ListBox1.AddItem r & "年" Next r For r = 1 To 12 UserForm1.ListBox2.AddItem r & "月" Next r UserForm1.Show vbModeless End Sub Private Sub OKbtn_Click() str = Replace(UserForm1.ListBox1.Text, "年", "") & "_" & Replace(UserForm1.ListBox2.Text, "月", "") Unload UserForm1 End Sub テストで変数strをA1・A2に入れたいのですが、この方法だとどちらも入りません。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/247
248: デフォルトの名無しさん (テテンテンテン MM3e-FgeY) [sage] 2020/09/15(火) 09:33:07 ID:q5KWnXWXM ボタン押してstrに代入するところModule1.strじゃないとダメなんじゃないの http://mevius.5ch.net/test/read.cgi/tech/1598756127/248
249: 246 (ワッチョイ 11cc-QmsY) [sage] 2020/09/15(火) 09:45:50 ID:Ty4jOAMY0 >>248 試しましたがだめでした 追記 ブックを開いたまま、tes1を2回目に実行するとA1には書き込みますが、 ブックを開いて、1回目のtes1実行ではA1には書き込まれないようです。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/249
250: デフォルトの名無しさん (テテンテンテン MM3e-FgeY) [sage] 2020/09/15(火) 09:57:04 ID:q5KWnXWXM モードレスだから ボタン押した時にUnload UserForm1する前にModule1.tes2を呼び出さないとだ Sub tes1() UserForm1.Show vbModeless End Sub Sub tes2() Range("A1").Value = str Range("A2").Value = str End Sub http://mevius.5ch.net/test/read.cgi/tech/1598756127/250
251: 246 (ワッチョイ 11cc-QmsY) [sage] 2020/09/15(火) 11:27:58 ID:Ty4jOAMY0 >>250 ありがとうございました。解決しました http://mevius.5ch.net/test/read.cgi/tech/1598756127/251
252: デフォルトの名無しさん (ワッチョイ 799c-m1Uj) [sage] 2020/09/15(火) 18:56:31 ID:Nzz3069/0 AccessVBAを使用しているのですが、標準モジュールを変数に格納する方法がわかりません。 フォームコントロールの様に変数に入れて扱う方法はありませんでしょうか。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/252
253: デフォルトの名無しさん (ワッチョイ 6de5-Pwf7) [] 2020/09/15(火) 19:29:57 ID:pZ4d9dfu0 ありません http://mevius.5ch.net/test/read.cgi/tech/1598756127/253
254: デフォルトの名無しさん (ワッチョイ 97da-GUw/) [] 2020/09/16(水) 00:02:05 ID:chmz5kZM0 Sub test() MsgBox Me.TextBox1.Value Me.Name="a" Me.Name="Sheet1" End Sub 1回目の実行 OK 2回目の実行 MsgBoxでエラー 3回目の実行 OK 4回目の実行 MsgBoxでエラー なんでやねん! http://mevius.5ch.net/test/read.cgi/tech/1598756127/254
255: デフォルトの名無しさん (ワッチョイ b7da-Cup9) [sage] 2020/09/16(水) 01:13:07 ID:fUx+IXsk0 >>254 F8 でステップ実行してみ、あとエラーの内容くらい書いてもよくね? http://mevius.5ch.net/test/read.cgi/tech/1598756127/255
256: デフォルトの名無しさん (ワッチョイ f79c-b3rt) [sage] 2020/09/16(水) 10:04:16 ID:HoY0/Pv80 >>253 ありがとうございます。 フォームを格納できるなら標準モジュールも出来るのかと思って質問しました。 標準モジュール内に書かれた関数の引数として参照先の標準モジュールを渡したかったのですが、別の方法を考えてみます。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/256
257: デフォルトの名無しさん (ワッチョイ bf90-W2Jb) [sage] 2020/09/16(水) 18:43:38 ID:DJD3HHCL0 動画ファイル(拡張子 mp4,avi等々)の長さ(時間)をvbaで得ること出来ませんかね。 動画用のプログラムでは出ているから何らか手段はあると思うのだけど。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/257
258: デフォルトの名無しさん (ワンミングク MM7f-7bR7) [sage] 2020/09/16(水) 19:23:25 ID:u7LyhgECM >>257 できる はい、次 http://mevius.5ch.net/test/read.cgi/tech/1598756127/258
259: デフォルトの名無しさん (ワッチョイ b7e5-cmNC) [sage] 2020/09/16(水) 19:55:21 ID:KOE6L/fW0 >>257 拾い物、動くかどうかは知らん Sub ボタン1_Click() Dim Shell, Folder Set Shell = CreateObject("Shell.Application") Set Folder = Shell.Namespace(Range("A1").Value) Fil = Dir(Range("a1").Value & "\*.*") Rows("5:65536").ClearComments i = 5 Do While Fil <> "" For j = 0 To 40 Cells(i, j + 1).Value = Folder.GetDetailsOf(Folder.ParseName(Fil), j) Next i = i + 1 Fil = Dir() Loop Set Folder = Nothing Set Shell = Nothing End Sub http://mevius.5ch.net/test/read.cgi/tech/1598756127/259
260: デフォルトの名無しさん (ワッチョイ f7e6-W2Jb) [sage] 2020/09/16(水) 20:18:38 ID:pG4LN1Ne0 手を抜くんじゃない! まじめにヘッダー読み込んで解析しろよ http://mevius.5ch.net/test/read.cgi/tech/1598756127/260
261: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/16(水) 20:21:47 ID:0zA9ovKo0 ファイルのプロパティからは取れない場合もあるよ http://mevius.5ch.net/test/read.cgi/tech/1598756127/261
262: デフォルトの名無しさん (ワッチョイ 97da-Cup9) [sage] 2020/09/16(水) 21:31:45 ID:chmz5kZM0 >>255 今環境ないんだけど、 アプリケーションの定義何とかか、 インデックス何とかか、 オートメーション何とかのどれか。 何か変なものがSetされちゃってるのかと思ったけど、 MeじゃMeしかないよね? http://mevius.5ch.net/test/read.cgi/tech/1598756127/262
263: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/16(水) 22:10:00 ID:jvSIB85Td >>260 昔、解析したことがある。 aviとかは割と簡単だね。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/263
264: デフォルトの名無しさん (ワッチョイ 5701-Cup9) [sage] 2020/09/16(水) 23:12:03 ID:dsrVDQ5Z0 すごく初歩的な質問ですみません &演算子で文字列と数字をつないで文字列を作った時に 出来上がった文字列に""を付けなくていいのはなぜなのですか? MsgBox "あいうえお" は""を付ける必要がある MsgBox "A" & hoge は文字列扱いのはずなのに""を付けて MsgBox ""A" & hoge"のようにしなくていいのが解せません http://mevius.5ch.net/test/read.cgi/tech/1598756127/264
265: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/16(水) 23:23:17 ID:0zA9ovKo0 &とhogeは文字列ではなく演算子と変数 http://mevius.5ch.net/test/read.cgi/tech/1598756127/265
266: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/16(水) 23:24:34 ID:0zA9ovKo0 ""で囲ったら演算子でも変数でもないただの& hogeという文字列にしかならない http://mevius.5ch.net/test/read.cgi/tech/1598756127/266
267: デフォルトの名無しさん (ワッチョイ 5701-Cup9) [sage] 2020/09/16(水) 23:48:53 ID:dsrVDQ5Z0 ありがとうございます >""で囲ったら演算子でも変数でもないただの& hogeという文字列にしかならない なるほど確かにです では、&演算子でつなぐと文字列扱いになるという認識が間違っているのでしょうか? それとも文字列扱いにはなるけど上記の理由から外すことになっているという感じでしょうか? http://mevius.5ch.net/test/read.cgi/tech/1598756127/267
268: デフォルトの名無しさん (ワッチョイ 973d-lnJt) [sage] 2020/09/17(木) 00:09:43 ID:pIQJoJyT0 >>267 その場合、 hogeは文字列として認識してください という命令を出している つまり 文字列(”A”) と(&) 文字列(hogeという変数に入っている文字列) を繋ぎ合わせて表示してください というのが”A” & hoge http://mevius.5ch.net/test/read.cgi/tech/1598756127/268
269: デフォルトの名無しさん (ワッチョイ bff7-Rz2h) [sage] 2020/09/17(木) 00:09:48 ID:MJVBSNKC0 ダブルクォートには引数の囲むような意味はない 引数を囲む記号は丸括弧になる たとえば X = msgbox("a" & hoge) みたいな書き方になる 返り値をとらない場合は()が省略可能ってだけ http://mevius.5ch.net/test/read.cgi/tech/1598756127/269
270: デフォルトの名無しさん (ワッチョイ 775f-gF9/) [sage] 2020/09/17(木) 00:11:18 ID:D84tTl8o0 リテラルと変数について調べると理解できるかも http://mevius.5ch.net/test/read.cgi/tech/1598756127/270
271: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/17(木) 00:13:09 ID:ncMNPksn0 >>267 hoteの型は何なんだ http://mevius.5ch.net/test/read.cgi/tech/1598756127/271
272: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/17(木) 00:21:16 ID:0EHVBisp0 値に型ってのがあるのを理解しよう 表示したいのは、"A"という値と変数hogeの値(を連結したもの)だろ &演算子でつなぐと文字列扱いになるってのは、演算対象を文字列に変換して結合するってこと この場合、hogeの値が文字列以外でも文字列に変換して評価するってことだ 基本を理解したいなら、なんの説明もなく&でつなぐと文字列扱いとかいう教え方するところは避けたほうが良いかな とりあえず動けばいいってならまあすきにすればいいけど http://mevius.5ch.net/test/read.cgi/tech/1598756127/272
273: デフォルトの名無しさん (ワッチョイ f73d-luBG) [sage] 2020/09/17(木) 02:20:25 ID:c2bYLY/G0 MsgBoxの第1引数は文字列型の値である必要があり、文字列型の値を表す式として典型的なのは、?文字列リテラルか、?文字列型の値が格納されている変数(文字列型変数)の参照。二重引用符は、文字列リテラルの表記方法に過ぎない。 &演算子は、本来、2つの文字列型の値を被演算数とする演算子だが、被演算数が文字列型の値と数値型の値であるような場合等は、適宜数値の方を文字列型の値に自動変換した上で本来の演算を行う……ということかと。重複になるが。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/273
274: デフォルトの名無しさん (ワッチョイ b7da-Cup9) [sage] 2020/09/17(木) 04:55:16 ID:PzgKRL2g0 数値を文字に変換するなら CSTR がある http://mevius.5ch.net/test/read.cgi/tech/1598756127/274
275: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/17(木) 07:47:55 ID:iixTl117d >>267 法則を暗記するからそうなる。 法則の仕組みを覚えるんだ。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/275
276: デフォルトの名無しさん (ワッチョイ b7cc-lMKa) [sage] 2020/09/17(木) 11:44:40 ID:1/N+zsdG0 同じフォルダにある"〇〇"というCSVを開いて、そのシートの最終行を取得したいのですが 「インデックスが有効範囲にありません」というメッセージでとまります Sub salegrp() Workbooks.Open ThisWorkbook.Path & "\〇〇", ReadOnly:=False MsgBox Sheets("〇〇").Cells(Rows.Count, 1).End(xlUp).Row End Sub 他のブックの最終行を表示する方法を教えてください (A列には最終行まで値が入っています) http://mevius.5ch.net/test/read.cgi/tech/1598756127/276
277: デフォルトの名無しさん (テテンテンテン MM8f-V038) [sage] 2020/09/17(木) 11:54:47 ID:DZPRMbPmM csv開いたてからActiveWork ook.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Rowすれば http://mevius.5ch.net/test/read.cgi/tech/1598756127/277
278: デフォルトの名無しさん (ワッチョイ b7ce-W2Jb) [sage] 2020/09/17(木) 12:14:37 ID:qGYgSA/Y0 >>276 必要なのは最終行に入ってるデータの内容?行数を知りたいだけ? 全データをワークシートに入れる必要がなければテキストファイルとして開いた方が早いかも http://mevius.5ch.net/test/read.cgi/tech/1598756127/278
279: デフォルトの名無しさん (ラクッペペ MM8f-gT2D) [] 2020/09/17(木) 12:24:52 ID:D1QZID39M Workbooks.Openの返り値をとってそれを操作する なおRows.Countも省略せずにシート指定する http://mevius.5ch.net/test/read.cgi/tech/1598756127/279
280: デフォルトの名無しさん (ワッチョイ b7cc-lMKa) [sage] 2020/09/17(木) 13:03:15 ID:1/N+zsdG0 >>277 できました。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/280
281: デフォルトの名無しさん (ワッチョイ 9f01-z5Vf) [sage] 2020/09/17(木) 16:10:59 ID:mN4YvgPv0 >>267 Sub tessstttt() Dim str1 As String Dim str2 As String str1 = "あいうえお" str2 = "かきくけこ" MsgBox str1 & str2 '結果「あいうえおかきくけこ」 MsgBox str1 & "かきくけこ" '結果「あいうえおかきくけこ」 MsgBox "あいうえお" & "かきくけこ" '結果「あいうえおかきくけこ」 End Sub http://mevius.5ch.net/test/read.cgi/tech/1598756127/281
282: デフォルトの名無しさん (ワッチョイ 9f01-z5Vf) [sage] 2020/09/17(木) 16:17:02 ID:mN4YvgPv0 >>279 ↑ VBA続けるつもりならこっちでやれるようにした方が http://mevius.5ch.net/test/read.cgi/tech/1598756127/282
283: デフォルトの名無しさん (ワッチョイ 9f02-5MQP) [sage] 2020/09/17(木) 16:44:05 ID:T9Rqn+gv0 他のbookやsheet絡むととたんに冗長になるんだよなぁ Range(.Cell(a,b))とか .Cellの前にもブックやシート指定しないとならんし http://mevius.5ch.net/test/read.cgi/tech/1598756127/283
284: デフォルトの名無しさん (ワッチョイ 973d-lnJt) [sage] 2020/09/17(木) 17:02:14 ID:pIQJoJyT0 >>283 むしろ1シートだけしか使わない場合でも、実効中に人がシート変更とかしても大丈夫なようにブック明記した方がいい http://mevius.5ch.net/test/read.cgi/tech/1598756127/284
285: デフォルトの名無しさん (アウアウカー Sa2b-gF9/) [sage] 2020/09/17(木) 17:07:16 ID:N0wmq1hya ブックとシート明示してworksheetオブジェクトの変数作ってそれ経由でアクセスさせるのが鉄板かね〜 http://mevius.5ch.net/test/read.cgi/tech/1598756127/285
286: デフォルトの名無しさん (ワッチョイ 9fad-dpHK) [sage] 2020/09/17(木) 17:41:26 ID:dgD4TP5z0 csvの最終行だったらテキスト形式でEOFまで吸い上げてってやった方が動作時間的には良さそうな気がした http://mevius.5ch.net/test/read.cgi/tech/1598756127/286
287: デフォルトの名無しさん (テテンテンテン MM8f-V038) [sage] 2020/09/17(木) 18:04:52 ID:aPn4iHhdM CSVの読み込みをしっかりやるならPowerQuery使おうみたいな話もあったりなかったり http://mevius.5ch.net/test/read.cgi/tech/1598756127/287
288: デフォルトの名無しさん (ワッチョイ 9f01-RDjc) [sage] 2020/09/17(木) 18:51:11 ID:1zO/WKqm0 >>285 てか、基本でしょ http://mevius.5ch.net/test/read.cgi/tech/1598756127/288
289: デフォルトの名無しさん (アウアウウー Sa5b-lnJt) [sage] 2020/09/17(木) 18:59:48 ID:DNVG/ozSa >>288 鉄板と基本の違い教えて http://mevius.5ch.net/test/read.cgi/tech/1598756127/289
290: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/17(木) 19:13:46 ID:ncMNPksn0 シート明示してないコードほんと多い よくやるわ http://mevius.5ch.net/test/read.cgi/tech/1598756127/290
291: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/17(木) 19:55:58 ID:iixTl117d >>279 俺なんて、必ずBookから書くぜ。 WithとSetを多用することになるが。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/291
292: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/17(木) 19:56:59 ID:iixTl117d >>283 その例ならRangeの前にも"."が必要。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/292
293: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/17(木) 19:58:31 ID:iixTl117d >>286 うん、CSVはLine Inputで1行ずつ+Splitで分解にすることが多い。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/293
294: デフォルトの名無しさん (ワッチョイ 9fad-dpHK) [sage] 2020/09/17(木) 20:23:48 ID:dgD4TP5z0 VBA覚えたての頃はいちいちアクティブシート切り替えてシート指定省いてたけど Sheet1.Cells(a,b)って書く癖は絶対つけといた方が良いって今は思ってる 可読性が段違いだもん 暫く同じシートのセルをいじくりたおすならWithで目立つように囲ってやりゃあ良いし http://mevius.5ch.net/test/read.cgi/tech/1598756127/294
295: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/17(木) 20:32:12 ID:0EHVBisp0 >>286 項目中に改行含むcsvとかも存在するからなぁ 汎用的なcsvを真面目にパースするとかなり面倒 そしてEXCELは最強のCSVパーサ(笑) http://mevius.5ch.net/test/read.cgi/tech/1598756127/295
296: デフォルトの名無しさん (ワッチョイ 9fb5-mxOi) [sage] 2020/09/17(木) 20:38:51 ID:23KXp+DW0 なんつーレベルの高い話だよ 初心者が覚えようと思ってどんなもんかとスレを見たのが大間違いか http://mevius.5ch.net/test/read.cgi/tech/1598756127/296
297: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/17(木) 21:39:36 ID:ncMNPksn0 この先いつまで初心者を名乗るつもりか知らないがいちいちアピールしない方がいいよ http://mevius.5ch.net/test/read.cgi/tech/1598756127/297
298: デフォルトの名無しさん (ワッチョイ 97da-Cup9) [sage] 2020/09/17(木) 21:45:39 ID:DqUtQRPA0 >>294 可読性以前に怖いんだよな。 アクティブシートが切り替わっちゃったらどうしようって。 実行中の操作とかで。 DoEvents挟まなきゃ絶対切り替わらないってならいいんだけど。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/298
299: デフォルトの名無しさん (ワッチョイ b7ce-W2Jb) [sage] 2020/09/17(木) 22:36:46 ID:qGYgSA/Y0 可読性も考慮するならオブジェクト変数に入れたりWithで囲んだり、頻出する構文なら別Functionに飛ばすという手もある めんどくさいけどバグを出すよりはマシ http://mevius.5ch.net/test/read.cgi/tech/1598756127/299
300: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/18(金) 01:50:57 ID:V3SekzLi0 そもそもオブジェクト指定のないCellsがいつでもActiveSheetを参照すると思うなよ シートモジュールに書いたCellsはそのシートを参照するんだぜ http://mevius.5ch.net/test/read.cgi/tech/1598756127/300
301: デフォルトの名無しさん (JP 0Hdf-iZ3/) [sage] 2020/09/18(金) 10:32:05 ID:68qBgcmgH VBAというよりVBSかもしれませんが いろいろ試したのですが正規表現の(肯|否)定(先|後)読みに対応していないようなのですが認識に相違ありませんか? また、擬似的に(肯|否)定(先|後)読みに対応させたコードを誰か公開していませんか? http://mevius.5ch.net/test/read.cgi/tech/1598756127/301
302: デフォルトの名無しさん (ワッチョイ b7ce-W2Jb) [sage] 2020/09/18(金) 14:09:52 ID:1dkG1MHP0 >>301 多くのアプリで、正規表現はWindowsに標準で内蔵されてるDLLを使ってる 独自の仕様やバグがあるのは既知だから、それが気に入らない時は別のライブラリを見つけてくるしかない http://mevius.5ch.net/test/read.cgi/tech/1598756127/302
303: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/18(金) 17:55:04 ID:vGT+RG4a0 VBSはスレ違いになるんだろうけどさー 今、仕事でそれで書かれたコード見てるんだよねー VB.NetからVBAに戻るとそのインテリセンスの効かなさに辟易するけど VBSで書かれたものはその比じゃないねー 参照もなーんも効かないところに持ってきて インデントも正しく書いてないし 綺麗にスパゲティーコードになってるの見ると 殺意を覚えるわー まぁVBS自体は同じファイルの中に 複数のクラスが書けたりするところは VBAよりいいのかな? http://mevius.5ch.net/test/read.cgi/tech/1598756127/303
304: デフォルトの名無しさん (アウアウウー Sa5b-l0r7) [sage] 2020/09/18(金) 20:53:29 ID:Ej6zlwK4a 見てるだけで殺意はないだろ 自分で分かりやすく直していけばいい http://mevius.5ch.net/test/read.cgi/tech/1598756127/304
305: デフォルトの名無しさん (アウアウエー Sadf-vKz6) [sage] 2020/09/18(金) 20:57:08 ID:E6dIN4Hja どんな人が書いたコードでも理解できるのがプロ http://mevius.5ch.net/test/read.cgi/tech/1598756127/305
306: デフォルトの名無しさん (ワッチョイ b7cc-lMKa) [sage] 2020/09/18(金) 20:57:17 ID:nL5nIenz0 C列に"2007/3/26"などのような書式で年月日が入っていますが それをC=年、D列=月、E列=日にしたいのですが ↓だと年が1905,月が1、日が26日のように変換されてしまいます。 Dim r As Long, dt As date For r = 2 To 435 dt = CDate(cells(r,3)) Cells(r, 3) = Year(dt) Cells(r, 4) = Month(dt) Cells(r, 5) = Day(dt) Next r http://mevius.5ch.net/test/read.cgi/tech/1598756127/306
307: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/18(金) 21:01:25 ID:vGT+RG4a0 >>306 最初date型で取ってやれば確か年や月や日を取る関数が有ったと思うよー じゃあねー http://mevius.5ch.net/test/read.cgi/tech/1598756127/307
308: デフォルトの名無しさん (JP 0Hdf-iZ3/) [sage] 2020/09/18(金) 21:05:10 ID:3fDNLBctH >>302 私が気に入りそうなものはありますか? 肯定先読み肯定後読み以上に高度な機能は求めていないのですが http://mevius.5ch.net/test/read.cgi/tech/1598756127/308
309: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/18(金) 21:10:13 ID:vGT+RG4a0 ていうかそうしてんじゃん 出力先のセルの書式はどうなってるの? コードを見た感じじゃ少なくとも3列目は 日付型みたいだけど http://mevius.5ch.net/test/read.cgi/tech/1598756127/309
310: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/18(金) 21:14:07 ID:Kp8J/oyZ0 >>306 year、month、dayの引数のdtの中身は2007/3/26ではない http://mevius.5ch.net/test/read.cgi/tech/1598756127/310
311: デフォルトの名無しさん (ワッチョイ f77c-5MQP) [sage] 2020/09/18(金) 21:16:37 ID:Kp8J/oyZ0 または3、4、5列目の表示形式をそれぞれy、m、dにしてる http://mevius.5ch.net/test/read.cgi/tech/1598756127/311
312: デフォルトの名無しさん (ワッチョイ 9fad-dpHK) [sage] 2020/09/18(金) 21:29:41 ID:LhaPjq300 >>306 考えなしに書くからセンス皆無なコードだけど3列目の日付が文字列で入ってるならこんなんどうよ Dim Ary(2 to 435,1 to 3) As Long,r As Long, a As String For LBound(Ary,1) to UBound(Ary,1) a = Sheet1.Cells(r,3).Value Ary(r,0) = Split(a,“/“)(0) Ary(r,1) = Split(a,“/“)(1) Ary(r,2) = Split(a,“/“)(2) Next Range(Sheet1.Cells(2,3),Sheet1.Сells(435,5)) = Ary http://mevius.5ch.net/test/read.cgi/tech/1598756127/312
313: デフォルトの名無しさん (ワッチョイ b7ce-W2Jb) [sage] 2020/09/18(金) 22:40:09 ID:1dkG1MHP0 >>306 Sub Macro1() Range("C2:C435").Copy Range("D2:E435").Select ActiveSheet.Paste Range("C2:C435").NumberFormatLocal = "yyyy" Range("D2:D435").NumberFormatLocal = "m" Range("E2:E435").NumberFormatLocal = "d" End Sub http://mevius.5ch.net/test/read.cgi/tech/1598756127/313
314: デフォルトの名無しさん (アウアウウー Sa5b-lnJt) [sage] 2020/09/18(金) 22:48:07 ID:mNDgEDOXa >>313 くそこーどを貼るのはやめてあげて http://mevius.5ch.net/test/read.cgi/tech/1598756127/314
315: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/18(金) 23:02:36 ID:V3SekzLi0 >>306 セルに表示されている文字とセルの値は別だって理解が必要 おそらく C列の表示形式が日付になっているが、そこの値を数値の2007にした 数値の2007は日付にすると1905/6/29 その年だけが表示されている 同様に数値の3は1900/1/3、数値の26は1900/1/26 まあ、想定とは違うかもしれんが正しく動いてると思われるな 解決策は、表示したいのは数値なのか日付なのかちゃんと決めて然るべき値と書式を設定しろ http://mevius.5ch.net/test/read.cgi/tech/1598756127/315
316: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/18(金) 23:05:29 ID:V3SekzLi0 つヵ、C列の値でC列に書き換えるとかしないで 元の値を別の列にもっとけば、VBAなしで関数だけで出来るだろうけど http://mevius.5ch.net/test/read.cgi/tech/1598756127/316
317: デフォルトの名無しさん (ワッチョイ 9f01-ybTh) [sage] 2020/09/19(土) 04:14:23 ID:JSd39pzr0 C,D,E列に表示させたいのは「数値」であるにも関わらず 「日付」の表示形式になっているからおかしくなる C,D,E列の書式設定→表示形式を日付から標準にする こうするとC列は39167のような形で表示されることになるが お構いなしにマクロを動かせば、意図した通りの動きになる でどう? http://mevius.5ch.net/test/read.cgi/tech/1598756127/317
318: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/19(土) 07:38:40 ID:kGiNzl5D0 >>305 理解出来るからこそ腹立たしいこともあるよー 例えばaとbとcってBooleanの変数を定義して a = b = c とか書いてるやつ まぁbとc が同じならaにTrueが、 違えばFalseが入るってことを期待して 書いてるなら見づらいけどまだ許せるよ でもcにbが代入されてそのままaにbが 代入されるとか思って書いてたらしく システムバグらせてそのままにしてたりとか テストどうしてたんだとか思うよねー 正直こんなのに関わりたくないけど 仕事だからやるって感じだねー http://mevius.5ch.net/test/read.cgi/tech/1598756127/318
319: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/19(土) 07:43:05 ID:kGiNzl5D0 あ、逆だった bにcが代入されてaにbが代入されると 思ってたらしいってことね まぁこの4日間は連休だし そうじゃなくてもテレワークだから 気楽に適当にやるつもりだよー http://mevius.5ch.net/test/read.cgi/tech/1598756127/319
320: デフォルトの名無しさん (ワッチョイ b7da-Cup9) [sage] 2020/09/19(土) 07:51:21 ID:oBjg4zik0 仕事の内容でそのソースを直せってことなら書き直せばいいんじゃねーの そのまま残すと後任者に同じように思われるんだぜ http://mevius.5ch.net/test/read.cgi/tech/1598756127/320
321: 257 (ワッチョイ bf90-W2Jb) [sage] 2020/09/19(土) 10:25:54 ID:fwfEHGdP0 >>259 遅くなってしまいましてごめん。自分の欲しかった情報がこれで取れる 事ができました。 ありがと! http://mevius.5ch.net/test/read.cgi/tech/1598756127/321
322: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/19(土) 15:00:02 ID:TN+kKyJDd >>320 その判断は結構難しい。 今動いてるものは、そのままにしておくというのが通常だ。 Accessでレコードセットループで回してる最中にその値でもって別のレコードセット開いたりを7、8回やって10分かけてデータ作ってるプログラムが有るんだけど、コレ、クエリ1つで出来るんじゃね?と思って試しに作ったら一瞬で出来る。 それでも、正式に変更することになるかと言えばならない。 こっちだってその辺は分かってる。 何かの時に、きちんと作り直しましょうという話になるまで置いとくもんで、むしろそんな話にならずにずっ―とそのままというのが殆ど。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/322
323: デフォルトの名無しさん (ドコグロ MMdf-RDjc) [sage] 2020/09/19(土) 15:56:27 ID:nGfYM+wGM >>322 なら > でもcにbが代入されてそのままaにbが > 代入されるとか思って書いてたらしく > システムバグらせてそのままにしてたりとか > テストどうしてたんだとか思うよねー とか書くなよ どうせ盛々で語ってるだけだろw http://mevius.5ch.net/test/read.cgi/tech/1598756127/323
324: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/19(土) 15:59:42 ID:TN+kKyJDd >>323 いやいや、俺はその人じゃないから。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/324
325: デフォルトの名無しさん (ワッチョイ b7da-Cup9) [sage] 2020/09/19(土) 16:24:18 ID:oBjg4zik0 >>322 重要な変更とは別で、こまかい高速化や最適化として変更するんだよ それができないなら他人のコードを悪くいってはいけない http://mevius.5ch.net/test/read.cgi/tech/1598756127/325
326: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/19(土) 18:06:32 ID:kGiNzl5D0 そうかーみんなそんな具合に考えてるのかー でも悪いけどその場でチャチャっと直すことはしないよ もちろん上に話を通すのは当然だけど こんなぐちゃぐちゃな行き当たりばったりのコード書いてんだから直すんなら他への影響調査の時間貰う まぁ当たり前だよねー http://mevius.5ch.net/test/read.cgi/tech/1598756127/326
327: デフォルトの名無しさん (ドコグロ MM2b-RDjc) [sage] 2020/09/19(土) 18:37:26 ID:e5zvgWAXM >>324 本人でもないのに > でもcにbが代入されてそのままaにbが > 代入されるとか思って書いてたらしく > システムバグらせてそのままにしてたりとか > テストどうしてたんだとか思うよねー に対して > 今動いてるものは、そのままにしておくというのが通常だ。 って言うの? アホの上塗りにしかなってないけど… w http://mevius.5ch.net/test/read.cgi/tech/1598756127/327
328: デフォルトの名無しさん (ワッチョイ 9f2f-qc2B) [sage] 2020/09/19(土) 18:39:28 ID:DdZzGNwy0 >>319 実際にそういう動きをする言語もあるからな >>325 それは開発方法とフェーズによる いつでも好き勝手コード弄れるような環境ばかりではない まあ、VBAではあまりないだろうけど http://mevius.5ch.net/test/read.cgi/tech/1598756127/328
329: デフォルトの名無しさん (ドコグロ MM8b-RDjc) [sage] 2020/09/19(土) 18:41:22 ID:HTxR1ogMM >>326 お前の会社のレベルが低いだけだろ まあそんな会社にしかいられない自分を省みたほうがいいなw http://mevius.5ch.net/test/read.cgi/tech/1598756127/329
330: デフォルトの名無しさん (ワッチョイ 9f4f-aBI4) [sage] 2020/09/19(土) 20:51:03 ID:kGiNzl5D0 >>329 ふーん そっちの会社ではそういうの見つけたら 調べないでチャチャっと直しちゃうのかー よっぽど優秀なんだねー 俺みたいな無能にはとても怖くて出来ないやーw http://mevius.5ch.net/test/read.cgi/tech/1598756127/330
331: デフォルトの名無しさん (ドコグロ MM8b-RDjc) [sage] 2020/09/19(土) 21:40:33 ID:b3MmLDI3M >>326 お前以外にチャッチャッと直すなんて言ってる奴いないんだけどw レベルの話は > こんなぐちゃぐちゃな行き当たりばったりのコード書いてんだから の部分な http://mevius.5ch.net/test/read.cgi/tech/1598756127/331
332: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/19(土) 22:13:23 ID:TN+kKyJDd >>325 いや、そうじゃなくて… そうか、確かにVBAはそれでメシ食ってる奴は少ないから分からんかもしれんな。 ウォーターフォールでやってて、プロジェクトの目的が決まってるのに、いくら高速化しても余計なことすれば怒られるのが当然なんだよ。 それが原因で不具合が出てみろ。 大変なことになるんだから。 確かに、思いつきでどんどん改変してく仕事も結構やったことある。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/332
333: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/19(土) 22:16:29 ID:TN+kKyJDd >>327 開発全般によくある話として言ったまで。 cとかbとかの話に参加したわけじゃない。 動いてるなら、触らないというのはよくあることだ。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/333
334: デフォルトの名無しさん (スップ Sdbf-k5ub) [sage] 2020/09/19(土) 22:21:26 ID:TN+kKyJDd >>328 確かに少ないかもね。 考えてみれば俺も今の職場で初めて。 でも他言語じゃよく聞く話だよな。 http://mevius.5ch.net/test/read.cgi/tech/1598756127/334
335: デフォルトの名無しさん (ワッチョイ 9f01-RDjc) [sage] 2020/09/19(土) 22:26:15 ID:cNAZP0Op0 >>333 話の流れが読めないバカということはよくわかった http://mevius.5ch.net/test/read.cgi/tech/1598756127/335
336: デフォルトの名無しさん (ワッチョイ b7ce-W2Jb) [sage] 2020/09/19(土) 22:48:23 ID:RlUx9i/e0 どんなに簡単な修正でも、思い込みやミスは誰にでもある うっかりエンバグする可能性があるから、先方から高速化などの要求がない限りは動いてる物を勝手に修正はしないのが基本かなあ http://mevius.5ch.net/test/read.cgi/tech/1598756127/336
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 666 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.020s