[過去ログ] Excel VBA 質問スレ Part68 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
241: (ササクッテロレ Spbd-jNRp) 2020/09/14(月)21:01 ID:K/D9SivKp(1) AAS
制御構造は、キーワードの選び方がやや独特だけど、基本的なものについては、概ね他の言語と同等のことはできると思う。
どちらかというと、変数の宣言・定義が一緒にできないとか、配列・コレクションの要素参照が角括弧でなく丸括弧だとか、プロシージャ呼び出しの丸括弧の要否とかの方が不便さを感じるかな。まぁ、これらも慣れと言われればそれまでだが。
242: (ワッチョイ a95f-hUiG) 2020/09/14(月)22:06 ID:9LhT2bwK0(1) AAS
gotoとラベルでできるっちゃあできるけどcontinueとbreakが欲しい
243: (ワッチョイ 393d-jNRp) 2020/09/14(月)22:20 ID:8aASiVNY0(1) AAS
breakは、一応Exit 〜が概ね対応しているのでは(While〜Wendでは使えないけど)?
脱出するループを明示的に指定するので、breakより便利な場合もごくたまにある。もっとも、二重のForループから抜ける場合などは結局GoToに頼ることになるので中途半端ではあるけど。
244: (ワッチョイ 397c-bL/7) 2020/09/14(月)23:27 ID:EMg7ooaX0(1) AAS
俺もたまにラベルでcontinueするけどめちゃくちゃ見栄え悪くて嫌
245: (スップ Sd0a-4Ha4) 2020/09/15(火)08:35 ID:Ny+/GOwEd(1) AAS
>>232
>>233
基本、それは使わないな。
読みやすさとか構造の分かり易さ優先。
勿論、時と場合による。
246: (ワッチョイ 11cc-QmsY) 2020/09/15(火)09:16 ID:Ty4jOAMY0(1/4) AAS
ユーザーフォームの2つリストボックスで選択された値を変数に代入する方法を教えてください

■Module1
Public str As String

■ThisWorkbook
Sub tes1()

UserForm1.Show vbModeless
Range("A1").Value = str
End Sub

Sub tes2()
Range("A2").Value = str
省1
247: (ワッチョイ 11cc-QmsY) 2020/09/15(火)09:17 ID:Ty4jOAMY0(2/4) AAS
■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
省6
248
(1): (テテンテンテン MM3e-FgeY) 2020/09/15(火)09:33 ID:q5KWnXWXM(1/2) AAS
ボタン押してstrに代入するところModule1.strじゃないとダメなんじゃないの
249: 246 (ワッチョイ 11cc-QmsY) 2020/09/15(火)09:45 ID:Ty4jOAMY0(3/4) AAS
>>248
試しましたがだめでした

追記
ブックを開いたまま、tes1を2回目に実行するとA1には書き込みますが、
ブックを開いて、1回目のtes1実行ではA1には書き込まれないようです。
250
(1): (テテンテンテン MM3e-FgeY) 2020/09/15(火)09:57 ID:q5KWnXWXM(2/2) AAS
モードレスだから
ボタン押した時にUnload UserForm1する前にModule1.tes2を呼び出さないとだ

Sub tes1()
UserForm1.Show vbModeless
End Sub

Sub tes2()
Range("A1").Value = str
Range("A2").Value = str
End Sub
251: 246 (ワッチョイ 11cc-QmsY) 2020/09/15(火)11:27 ID:Ty4jOAMY0(4/4) AAS
>>250
ありがとうございました。解決しました
252: (ワッチョイ 799c-m1Uj) 2020/09/15(火)18:56 ID:Nzz3069/0(1) AAS
AccessVBAを使用しているのですが、標準モジュールを変数に格納する方法がわかりません。
フォームコントロールの様に変数に入れて扱う方法はありませんでしょうか。
253
(1): (ワッチョイ 6de5-Pwf7) 2020/09/15(火)19:29 ID:pZ4d9dfu0(1) AAS
ありません
254
(1): (ワッチョイ 97da-GUw/) 2020/09/16(水)00:02 ID:chmz5kZM0(1/2) AAS
Sub test()
MsgBox Me.TextBox1.Value
Me.Name="a"
Me.Name="Sheet1"
End Sub

1回目の実行 OK
2回目の実行 MsgBoxでエラー
3回目の実行 OK
4回目の実行 MsgBoxでエラー

なんでやねん!
255
(1): (ワッチョイ b7da-Cup9) 2020/09/16(水)01:13 ID:fUx+IXsk0(1) AAS
>>254
F8 でステップ実行してみ、あとエラーの内容くらい書いてもよくね?
256: (ワッチョイ f79c-b3rt) 2020/09/16(水)10:04 ID:HoY0/Pv80(1) AAS
>>253
ありがとうございます。
フォームを格納できるなら標準モジュールも出来るのかと思って質問しました。
標準モジュール内に書かれた関数の引数として参照先の標準モジュールを渡したかったのですが、別の方法を考えてみます。
257
(2): (ワッチョイ bf90-W2Jb) 2020/09/16(水)18:43 ID:DJD3HHCL0(1) AAS
動画ファイル(拡張子 mp4,avi等々)の長さ(時間)をvbaで得ること出来ませんかね。
動画用のプログラムでは出ているから何らか手段はあると思うのだけど。
258: (ワンミングク MM7f-7bR7) 2020/09/16(水)19:23 ID:u7LyhgECM(1) AAS
>>257
できる
はい、次
259
(1): (ワッチョイ b7e5-cmNC) 2020/09/16(水)19:55 ID:KOE6L/fW0(1) AAS
>>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 <> ""
省9
260
(1): (ワッチョイ f7e6-W2Jb) 2020/09/16(水)20:18 ID:pG4LN1Ne0(1) AAS
手を抜くんじゃない!
まじめにヘッダー読み込んで解析しろよ
1-
あと 742 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.018s