!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けるナリ
ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ
※前スレ
Excel VBA 質問スレ Part74
https://mevius.5ch.net/test/read.cgi/tech/1639932059/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
Excel VBA 質問スレ Part75
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (スフッ Sd7f-wadS)
2022/02/09(水) 14:24:32.62ID:I0u44nFvd667デフォルトの名無しさん (アウアウウー Sacd-1WDX)
2022/03/29(火) 15:54:16.92ID:ffasCIjOa668デフォルトの名無しさん (ワッチョイ 55d3-Q6Rq)
2022/03/29(火) 18:10:12.28ID:OyTS9aq30 列ではなく、選択した箇所だけを固定したいのですが出来ませんか?
669デフォルトの名無しさん (ワッチョイ 0dce-+Ivz)
2022/03/29(火) 18:32:44.42ID:ZoTD6ZCz0670デフォルトの名無しさん (スップ Sdb2-Slbg)
2022/03/29(火) 18:52:31.36ID:DZfi33jJd 各自が想定してるコードが違うんだから言葉遊びにすぎないよ
自分のレスもいまいちだったかもしれんがNothingをセットして終了するならNothingかもしれないが
後続のコードにIs Nothingなり変数の参照があるならそれは結果的にNothingではなくなるのと一緒と自分は思ってるだけ
例に出して申し訳ないが
> Set a = Nothing
> のあとに
> MsgBox (a Is Nothing)
これとかね
自分なりの結論は宣言時にNewは使わないほうが無難
自分のレスもいまいちだったかもしれんがNothingをセットして終了するならNothingかもしれないが
後続のコードにIs Nothingなり変数の参照があるならそれは結果的にNothingではなくなるのと一緒と自分は思ってるだけ
例に出して申し訳ないが
> Set a = Nothing
> のあとに
> MsgBox (a Is Nothing)
これとかね
自分なりの結論は宣言時にNewは使わないほうが無難
671デフォルトの名無しさん (ワッチョイ 552f-XwpL)
2022/03/29(火) 19:12:31.97ID:YOHlvasK0 >代入すればNothingになる
>その次にアクセスすると、またそのタイミングで自動的にNewされる
厳密にはその通り
そんなことは分かったうえで、それをコード上で確認できないから
Nothingにならない と表現したわけで、その表現が間違いらしいですわ
(VBAコードから)オブジェクト変数をNothingとして評価できない
すべての個所をそう読み替えといてくれ
飽きたし俺はこの話はもうこれで終わり
>その次にアクセスすると、またそのタイミングで自動的にNewされる
厳密にはその通り
そんなことは分かったうえで、それをコード上で確認できないから
Nothingにならない と表現したわけで、その表現が間違いらしいですわ
(VBAコードから)オブジェクト変数をNothingとして評価できない
すべての個所をそう読み替えといてくれ
飽きたし俺はこの話はもうこれで終わり
672デフォルトの名無しさん (ワッチョイ 924f-JoQ9)
2022/03/29(火) 19:15:45.64ID:YJRadFF90 まぁ>>670の言う通り言葉遊びだよね
みんな実際の挙動は理解しての会話になってるみたいだし
みんな実際の挙動は理解しての会話になってるみたいだし
673デフォルトの名無しさん (ワッチョイ b5e6-gZpx)
2022/03/29(火) 19:19:18.21ID:y+mxjJK80 まあオレは今まで知らなかったけどな!
674デフォルトの名無しさん (ワッチョイ 655f-ObPs)
2022/03/29(火) 19:32:15.47ID:/IcSX3Pk0 >>644
おれ以外にもthom先生見てる人いたか
おれ以外にもthom先生見てる人いたか
675デフォルトの名無しさん (ブーイモ MMa6-+Ivz)
2022/03/29(火) 20:35:52.45ID:TgcL8J/yM どう見ても最初はわかってなかったやろ
最後にやっと理解できたみたいだけど
最後にやっと理解できたみたいだけど
676デフォルトの名無しさん (ワッチョイ 9202-dpz8)
2022/03/29(火) 21:25:13.63ID:YV5lTWI/0 人に優しく行きましょう
それは分かる人に与えられた特権なのです
それは分かる人に与えられた特権なのです
677デフォルトの名無しさん (ワッチョイ 655f-ObPs)
2022/03/30(水) 05:40:49.56ID:bXpTryOw0 人生は優しくなるためにある
678デフォルトの名無しさん (ラクッペペ MM96-48vY)
2022/03/30(水) 08:23:09.21ID:0ps204vGM スマホ手打ちなので誤字等ありましたらすみませんがよろしくお願いします。
rangeを用いた範囲指定でcells(row,columns)の行、列の部分に端数切り上げで数式を入れたいと考えています。
vbaで roundupを用いる時はworksheetfunction.をつける必要があることをネットで知ったのですが、ページによって頭にapplication.をつけてるものとそうでないものが混在しました。有無によってどのような違いがあるのか教えてください。
rangeを用いた範囲指定でcells(row,columns)の行、列の部分に端数切り上げで数式を入れたいと考えています。
vbaで roundupを用いる時はworksheetfunction.をつける必要があることをネットで知ったのですが、ページによって頭にapplication.をつけてるものとそうでないものが混在しました。有無によってどのような違いがあるのか教えてください。
679デフォルトの名無しさん (スッップ Sdb2-Slbg)
2022/03/30(水) 08:47:30.52ID:06EhkzBAd 数式を入れるのかワークシート関数を使って値をいれたいのかよくわからないけど
後半の質問であればVBA上では動作に違いはないよ
「https://docs.microsoft.com/ja-jp/office/vba/api/excel.application(object)」の
「アクティブ セル (ActiveCell プロパティ) など、最も一般的なユーザーインターフェイス オブジェクトを返すプロパティとメソッドのほとんどは、Application オブジェクト修飾子を指定しないで使用できます。」
と書いてある通り
こういう質問する前にヘルプを見ると知りたい事や知っておいたいいことが書いてる場合もあるし怪しい回答の知識を覚えなくて済むから見る癖つけたほうがいいぞ
後半の質問であればVBA上では動作に違いはないよ
「https://docs.microsoft.com/ja-jp/office/vba/api/excel.application(object)」の
「アクティブ セル (ActiveCell プロパティ) など、最も一般的なユーザーインターフェイス オブジェクトを返すプロパティとメソッドのほとんどは、Application オブジェクト修飾子を指定しないで使用できます。」
と書いてある通り
こういう質問する前にヘルプを見ると知りたい事や知っておいたいいことが書いてる場合もあるし怪しい回答の知識を覚えなくて済むから見る癖つけたほうがいいぞ
680デフォルトの名無しさん (ラクッペペ MM96-48vY)
2022/03/30(水) 08:54:37.31ID:6Q6BE8PxM >679
ありがとう、参考にします。
ありがとう、参考にします。
681デフォルトの名無しさん (オッペケ Sr79-+/qe)
2022/03/30(水) 09:15:22.27ID:p8/VPuFXr いえいえ
682デフォルトの名無しさん (ワッチョイ 9eda-Gt7H)
2022/03/30(水) 10:25:12.15ID:otm0Hfbh0 実際に組んでみてうまく行かない場合に調べるとか質問とかしたらいいと思う
683デフォルトの名無しさん (ワッチョイ 69f0-c/bJ)
2022/03/30(水) 10:38:48.27ID:xL2+oAob0 ちょっと教えてください
複数のシートを一緒にスクロールして
常に同じ位置に同じ行列が表示させられるような移動方法ってありますか?
例)
シート1〜シート10までをグループ化して
シート1をスクロールして1000行目を頭に表示すると
残りのシート2〜シート10も同じように1000行目を表示している
よろしくお願いします
複数のシートを一緒にスクロールして
常に同じ位置に同じ行列が表示させられるような移動方法ってありますか?
例)
シート1〜シート10までをグループ化して
シート1をスクロールして1000行目を頭に表示すると
残りのシート2〜シート10も同じように1000行目を表示している
よろしくお願いします
684デフォルトの名無しさん (ワッチョイ 6e7c-O0kb)
2022/03/30(水) 14:07:54.57ID:4QxrGADI0 裸の王様がやってきた やってきた やってきたぞ
685デフォルトの名無しさん (ワッチョイ 552f-XwpL)
2022/03/30(水) 19:23:16.04ID:QNA9H61R0 >>683
いったんアクティブにしていいなら
Application.GotoとかWindow.ScrollIntoViewとかで表示位置は変えられるけど
まあ使い物にならない可能性が高いな
アクティブじゃないシートのスクロール位置を変える方法があるなら俺も知りたい
それかWindow10個作って同時にスクロールにするとか
いったんアクティブにしていいなら
Application.GotoとかWindow.ScrollIntoViewとかで表示位置は変えられるけど
まあ使い物にならない可能性が高いな
アクティブじゃないシートのスクロール位置を変える方法があるなら俺も知りたい
それかWindow10個作って同時にスクロールにするとか
686デフォルトの名無しさん (ワッチョイ 1242-PYYx)
2022/03/30(水) 19:31:25.53ID:ljpoek3c0 複数のシートのデータを纏めたシートを作ったらどうかな
687デフォルトの名無しさん (ワッチョイ f568-+Ivz)
2022/03/30(水) 19:32:55.87ID:2JfZorGz0 スクロールのイベントってないんか
クリックしたセルを同じにするマクロ
なんじゃこりゃ
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Sheets("sheet2").Select
Sheets("sheet2").Cells(Target.Row, Target.Column).Select
Sheets("sheet3").Select
Sheets("sheet3").Cells(Target.Row, Target.Column).Select
Sheets("sheet1").Select
End If
End Sub
クリックしたセルを同じにするマクロ
なんじゃこりゃ
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
If Sh.Name = "Sheet1" Then
Sheets("sheet2").Select
Sheets("sheet2").Cells(Target.Row, Target.Column).Select
Sheets("sheet3").Select
Sheets("sheet3").Cells(Target.Row, Target.Column).Select
Sheets("sheet1").Select
End If
End Sub
688デフォルトの名無しさん (ワッチョイ 5e8e-/mVJ)
2022/03/30(水) 19:47:16.20ID:R9seM6Mc0 馬鹿が考えた操作なんて実装しても、所詮馬鹿の馬鹿な発想でしかない
689デフォルトの名無しさん (ワッチョイ a901-uHCF)
2022/03/30(水) 22:06:13.73ID:wN+Ljz7f0 >>687
フォーム内のスクロールバーはイベント取得できるぽい
そういうのでいいならフォーム内スクロールバーに従ってシートをスクロールさせることはできそう
もしくはシート1のスクロールを監視して自分でイベント発行するか
フォーム内のスクロールバーはイベント取得できるぽい
そういうのでいいならフォーム内スクロールバーに従ってシートをスクロールさせることはできそう
もしくはシート1のスクロールを監視して自分でイベント発行するか
690デフォルトの名無しさん (ワッチョイ 9202-dpz8)
2022/03/30(水) 22:25:38.10ID:N270RWsC0 彼女の下のお口から出る糸を、シート(She糸)と呼びます
691デフォルトの名無しさん (ワッチョイ f568-+Ivz)
2022/03/30(水) 22:25:54.14ID:2JfZorGz0 >>689
逆にスクロールを実装すればよかったのね
下スクロールを実装したら期待通りの動きになったわ
Sub Macro4()
' Keyboard Shortcut: Ctrl+Shift+P
Windows("Book1 - 1").Activate
ActiveWindow.SmallScroll Down:=30
Windows("Book1 - 2").Activate
ActiveWindow.SmallScroll Down:=30
Windows("Book1 - 3").Activate
ActiveWindow.SmallScroll Down:=30
End Sub
逆にスクロールを実装すればよかったのね
下スクロールを実装したら期待通りの動きになったわ
Sub Macro4()
' Keyboard Shortcut: Ctrl+Shift+P
Windows("Book1 - 1").Activate
ActiveWindow.SmallScroll Down:=30
Windows("Book1 - 2").Activate
ActiveWindow.SmallScroll Down:=30
Windows("Book1 - 3").Activate
ActiveWindow.SmallScroll Down:=30
End Sub
692デフォルトの名無しさん (ブーイモ MMa6-+Ivz)
2022/03/31(木) 04:24:20.35ID:YoVJ22V0M 糸を出す女ってスパイダーガールか
693デフォルトの名無しさん (ブーイモ MM96-/MGz)
2022/04/01(金) 07:19:21.13ID:fdMR9HVCM 宗教的な話題になりそうだけど、If文で判定入れてそれ以外の場合は何もしないって処理の時、elseを省く?それとも何も処理をしないって明示するためにelseの中に何も書かない?
694デフォルトの名無しさん (アウアウウー Sacd-1WDX)
2022/04/01(金) 08:08:06.08ID:AJ0kjIG/a 俺は省く
逆に Select Case の Case Else は必ずつけて何もしなくていいことを明示するコメントを書いておく
逆に Select Case の Case Else は必ずつけて何もしなくていいことを明示するコメントを書いておく
695デフォルトの名無しさん (ワッチョイ f568-+Ivz)
2022/04/01(金) 08:13:36.66ID:YZ/4IsUH0 こういう書き方ってどうにかしてうまくまとめる方法はありますか?
if C=1 then
if B=1 then
if A=1 then
msgbox "メイン処理を実行します"
else
msgbox "A=1じゃなかったので実行しなかった"
else
msgbox "B=1じゃなかったので実行しなかった"
else
msgbox "C=1じゃなかったので実行しなかった"
if C=1 then
if B=1 then
if A=1 then
msgbox "メイン処理を実行します"
else
msgbox "A=1じゃなかったので実行しなかった"
else
msgbox "B=1じゃなかったので実行しなかった"
else
msgbox "C=1じゃなかったので実行しなかった"
696デフォルトの名無しさん (アウアウウー Sacd-1WDX)
2022/04/01(金) 08:33:32.40ID:cX1o4aeta >>695
If C <> 1 Then
msgbox "C=1じゃなかったので実行しなかった"
Goto Skip
End If
If B <> 1 Then
msgbox "B=1じゃなかったので実行しなかった"
Goto Skip
End If
If A <> 1 Then
msgbox "A=1じゃなかったので実行しなかった"
Goto Skip
End If
msgbox "メイン処理を実行します"
Skip:
Goto 嫌なら Sub に入れて Return とか
If C <> 1 Then
msgbox "C=1じゃなかったので実行しなかった"
Goto Skip
End If
If B <> 1 Then
msgbox "B=1じゃなかったので実行しなかった"
Goto Skip
End If
If A <> 1 Then
msgbox "A=1じゃなかったので実行しなかった"
Goto Skip
End If
msgbox "メイン処理を実行します"
Skip:
Goto 嫌なら Sub に入れて Return とか
697デフォルトの名無しさん (ワッチョイ a901-uHCF)
2022/04/01(金) 09:19:19.95ID:qbFmdfWP0 >>695
ネスト深くなるとわかりにくい
処理は簡単な単位でまとめたほうがいい
実行する/しないは一つの単位(success/errorのように)としてまとめたほうがいい
拒否理由="なし"
if c<>1 then 拒否理由="cじゃない"
else if b<>1 then 拒否理由="bじゃない"
else if a<>1 then 拒否理由="aじゃない"
if 拒否理由="なし"
メイン処理
else
msgbox 拒否理由&"ので実行しません"
ネスト深くなるとわかりにくい
処理は簡単な単位でまとめたほうがいい
実行する/しないは一つの単位(success/errorのように)としてまとめたほうがいい
拒否理由="なし"
if c<>1 then 拒否理由="cじゃない"
else if b<>1 then 拒否理由="bじゃない"
else if a<>1 then 拒否理由="aじゃない"
if 拒否理由="なし"
メイン処理
else
msgbox 拒否理由&"ので実行しません"
698デフォルトの名無しさん (ワッチョイ 9eda-c/bJ)
2022/04/01(金) 19:02:13.39ID:qNIRpAbL0 わかりにくいってだけで正常に動作しているならコメントでも書いとけばいいんじゃね
699デフォルトの名無しさん (ラクッペペ MM96-gZpx)
2022/04/01(金) 19:04:18.25ID:iXF+QXI0M >>696
do loop 0でブレイク
do loop 0でブレイク
700デフォルトの名無しさん (ワッチョイ 2d5f-5wp0)
2022/04/02(土) 10:46:13.39ID:fjGlq1dk0701デフォルトの名無しさん (アウアウウー Sae9-ukBL)
2022/04/02(土) 12:32:39.80ID:wbru5aYXa VBA の Select Case は Case 節に式が書けるから素直に
Select Case True
Case C <> 1
msgbox "C=1じゃなかったので実行しなかった"
Case B <> 1
msgbox "B=1じゃなかったので実行しなかった"
Case A <> 1
msgbox "A=1じゃなかったので実行しなかった"
Case Else
msgbox "メイン処理を実行します"
End Select
がわかりやすいかな
Select Case True
Case C <> 1
msgbox "C=1じゃなかったので実行しなかった"
Case B <> 1
msgbox "B=1じゃなかったので実行しなかった"
Case A <> 1
msgbox "A=1じゃなかったので実行しなかった"
Case Else
msgbox "メイン処理を実行します"
End Select
がわかりやすいかな
702デフォルトの名無しさん (ササクッテロラ Sp01-a6kw)
2022/04/02(土) 13:02:04.64ID:ZSAOoecqp703デフォルトの名無しさん (ワッチョイ cbda-91fs)
2022/04/02(土) 19:50:51.52ID:xmwnc1Js0 複数の条件が成り立つ場合の優先度とか気にせんと・・・
704デフォルトの名無しさん (アウアウウー Sae9-ukBL)
2022/04/02(土) 20:08:08.57ID:rQp/oHNqa >>703
なんでドキュメント読まないの?
複数の Case 句の expressionlist 式に一致する場合は、最初に一致した句に続くステートメントのみが実行されます。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/select-case-statement
なんでドキュメント読まないの?
複数の Case 句の expressionlist 式に一致する場合は、最初に一致した句に続くステートメントのみが実行されます。
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/select-case-statement
705デフォルトの名無しさん (ワッチョイ 4be6-4iMi)
2022/04/03(日) 00:02:19.90ID:ZgXClf4M0 A=1かつB=1かつC=1だったらXが実行されるって言う事ではないのね
なんかややこしいね(´・ω・`)
なんかややこしいね(´・ω・`)
706デフォルトの名無しさん (ワッチョイ 5dce-fe9w)
2022/04/03(日) 03:01:36.86ID:J74pUyNp0 俺は中身が1行の時はCaseを1行にまとめる派
Sub Macro()
Select Case True
Case C <> 1: errmsg ("C")
Case B <> 1: errmsg ("B")
Case A <> 1: errmsg ("A")
Case Else: MsgBox "メイン処理を実行します"
End Select
End Sub
Sub errmsg(s$)
MsgBox s & "=1じゃなかったので実行しなかった"
End Sub
Sub Macro()
Select Case True
Case C <> 1: errmsg ("C")
Case B <> 1: errmsg ("B")
Case A <> 1: errmsg ("A")
Case Else: MsgBox "メイン処理を実行します"
End Select
End Sub
Sub errmsg(s$)
MsgBox s & "=1じゃなかったので実行しなかった"
End Sub
707デフォルトの名無しさん (アウアウウー Sae9-ukBL)
2022/04/03(日) 06:50:49.06ID:o4u0MtXma >>706
errmsg の呼出時の括弧は要らないのでは?
errmsg の呼出時の括弧は要らないのでは?
708デフォルトの名無しさん (ワッチョイ 0d68-fe9w)
2022/04/03(日) 07:52:44.68ID:6Vj/pyuu0 >>706
こういうふうにはしないほうが良い?
Sub Macro()
Select Case True
Case C <> 1: msg ="C"
Case B <> 1: msg ="B"
Case A <> 1: msg ="A"
Case Else: msg= "メイン処理を実行します"
End Select
End Sub
msgbox(msg)
こういうふうにはしないほうが良い?
Sub Macro()
Select Case True
Case C <> 1: msg ="C"
Case B <> 1: msg ="B"
Case A <> 1: msg ="A"
Case Else: msg= "メイン処理を実行します"
End Select
End Sub
msgbox(msg)
709デフォルトの名無しさん (ブーイモ MM79-2Qsg)
2022/04/03(日) 08:39:48.32ID:D1zTFGCZM そうやって本筋じゃない方へ話題は逸れていく
710デフォルトの名無しさん (ワッチョイ 234f-a6kw)
2022/04/03(日) 09:01:58.41ID:Uf1/B9Ep0 Subの場合は
括弧を付けるならCallも付ける
Callを付けないなら括弧も付けない
それだけ
括弧を付けるならCallも付ける
Callを付けないなら括弧も付けない
それだけ
711デフォルトの名無しさん (アウアウウー Sae9-ukBL)
2022/04/03(日) 09:05:23.70ID:r53Jbhkva712デフォルトの名無しさん (ワッチョイ 0d68-fe9w)
2022/04/03(日) 09:06:11.26ID:6Vj/pyuu0 >>709
今回はどんどん話を膨らませていいよ
今回はどんどん話を膨らませていいよ
713デフォルトの名無しさん (スッップ Sd43-8w8P)
2022/04/03(日) 10:18:01.32ID:spDayutJd 僕が考えた最高のコード
ってやつだろこんな話題にくいつくのもはずいわ
ってやつだろこんな話題にくいつくのもはずいわ
714デフォルトの名無しさん (ワッチョイ 0d68-fe9w)
2022/04/03(日) 10:39:12.57ID:6Vj/pyuu0 >>708は間違いね
こういう風に、メッセージの中だけ変数に入れて最後で表示させるってのはやめたほうがいいでしょうか
Sub Macro()
Select Case True
Case C <> 1: msg ="C=1じゃなかったので実行しなかった"
Case B <> 1: msg ="B=1じゃなかったので実行しなかった"
Case A <> 1: msg ="A=1じゃなかったので実行しなかった"
Case Else: msg= "メイン処理を実行します"
End Select
End Sub
msgbox(msg)
こういう風に、メッセージの中だけ変数に入れて最後で表示させるってのはやめたほうがいいでしょうか
Sub Macro()
Select Case True
Case C <> 1: msg ="C=1じゃなかったので実行しなかった"
Case B <> 1: msg ="B=1じゃなかったので実行しなかった"
Case A <> 1: msg ="A=1じゃなかったので実行しなかった"
Case Else: msg= "メイン処理を実行します"
End Select
End Sub
msgbox(msg)
715デフォルトの名無しさん (ラクッペペ MM4b-eSjc)
2022/04/03(日) 10:49:41.47ID:LxaPNz9fM 好きにすればいい
716デフォルトの名無しさん (ワッチョイ cbda-91fs)
2022/04/03(日) 12:48:35.67ID:AxYcslms0 >>714
実行しなかったって表示するのに実行しそうだな
実行しなかったって表示するのに実行しそうだな
717デフォルトの名無しさん (ササクッテロラ Sp01-a6kw)
2022/04/03(日) 13:26:31.81ID:mz7mxvwZp しねーよハゲ
718デフォルトの名無しさん (ワッチョイ 1b8c-DC8L)
2022/04/03(日) 15:21:18.52ID:4YOQBH220719デフォルトの名無しさん (スッップ Sd43-8w8P)
2022/04/03(日) 15:52:40.85ID:vYlFEoJTd 実際の仕様でもなんでもない話に採用もクソもないのでは
好きにすればいいはなし
好きにすればいいはなし
720デフォルトの名無しさん (アウアウウー Sae9-ukBL)
2022/04/03(日) 17:28:53.57ID:m8vuVm8ra 話題に食いつくのははずいのに批判だけはするんだな
てか、批判しかできないのかなw
てか、批判しかできないのかなw
721デフォルトの名無しさん (ワッチョイ 0d68-fe9w)
2022/04/03(日) 17:42:03.95ID:6Vj/pyuu0 草
722デフォルトの名無しさん (アウアウウー Sae9-fe9w)
2022/04/05(火) 23:43:32.11ID:4aElhsU0a >>714
最高のコード
最高のコード
723デフォルトの名無しさん (ワッチョイ cbda-zZJH)
2022/04/07(木) 20:06:13.11ID:k57kmbe60 >>722
End Sub の下に msgbox(msg) があるのに?
End Sub の下に msgbox(msg) があるのに?
724デフォルトの名無しさん (ワッチョイ 234f-RJrg)
2022/04/07(木) 20:57:01.15ID:WZu7hIyw0 やっと書き込めた。
BB2Cが死んでJane Stileとかいうアプリで書き込んでるけど、VBAスレもその煽りかめっきり書き込み減ってるね。
BB2Cが死んでJane Stileとかいうアプリで書き込んでるけど、VBAスレもその煽りかめっきり書き込み減ってるね。
725デフォルトの名無しさん (アウアウウー Sae9-91fs)
2022/04/07(木) 22:52:18.94ID:shKfmndDa >>723
最(もお茶が)高(く噴き出た)のコード
最(もお茶が)高(く噴き出た)のコード
726デフォルトの名無しさん (ワッチョイ 2302-1g2K)
2022/04/08(金) 09:32:33.40ID:P5V0Axif0 ハイパーリンクで、他のファイルを開こうとすると、警告ダイアログが出ますが、
(「ファイルには、ウイルスやコンピューターに問題を…」)
非表示にできますか?
レジストリでDisableHyperlinkWarningをやっても、ダメでした…。
(「ファイルには、ウイルスやコンピューターに問題を…」)
非表示にできますか?
レジストリでDisableHyperlinkWarningをやっても、ダメでした…。
727デフォルトの名無しさん (ワッチョイ 23ad-DAe0)
2022/04/08(金) 09:48:16.01ID:O75PAQWK0 ユーザーフォームに設置したボタンをクリックすると
Private Sub 〜〜〜_Clickのイベントプロシージャが追加されますが、
このコードの追加位置はどういう基準で決まっていますか?
すぐ隣のボタンのClickの近くに挿入されることもあれば、
結構離れた位置に挿入されることもあります。
Private Sub 〜〜〜_Clickのイベントプロシージャが追加されますが、
このコードの追加位置はどういう基準で決まっていますか?
すぐ隣のボタンのClickの近くに挿入されることもあれば、
結構離れた位置に挿入されることもあります。
728デフォルトの名無しさん (アウアウウー Sae9-91fs)
2022/04/08(金) 18:32:41.81ID:DozpoMh4a 質問は一人一つまで。
729デフォルトの名無しさん (ワッチョイ cbda-zZJH)
2022/04/08(金) 19:07:30.71ID:aNhRPKRk0 >>726
ウイルスでも作っているの?
ウイルスでも作っているの?
730デフォルトの名無しさん (ワッチョイ 155f-/7Bn)
2022/04/08(金) 19:44:29.30ID:p3Omju050 エクセルVBAでウイルスを作ることはできますか?
エクセルVBAでAIを作ることはできますか?
エクセルVBAでAIを作ることはできますか?
731デフォルトの名無しさん (ワッチョイ 4d17-03l7)
2022/04/08(金) 19:49:56.82ID:0/Kcf5P10 >>726
試してないから出来るか分からんけどディスプレイアラートは?
試してないから出来るか分からんけどディスプレイアラートは?
732デフォルトの名無しさん (ワッチョイ 234f-RJrg)
2022/04/08(金) 19:59:37.27ID:iHtexTHZ0733デフォルトの名無しさん (スップ Sd43-sgGH)
2022/04/08(金) 20:10:13.83ID:cwm3b4Q1d734デフォルトの名無しさん (ワッチョイ 155f-/7Bn)
2022/04/08(金) 20:43:11.43ID:p3Omju050 >>732
でもおまえウイルスの作り方わからないじゃん
でもおまえウイルスの作り方わからないじゃん
735デフォルトの名無しさん (ワッチョイ 0d68-91fs)
2022/04/08(金) 20:59:12.69ID:AMkeYZ900 ウィルスの定義は「操作する人が意図しない動作を起こすプログラム」
だから空白のボタン押すと背景の色が変わるとかそんなんでもウィルスです
だから空白のボタン押すと背景の色が変わるとかそんなんでもウィルスです
736デフォルトの名無しさん (ワッチョイ 234f-a6kw)
2022/04/08(金) 21:53:49.35ID:iHtexTHZ0737デフォルトの名無しさん (ワッチョイ 0d68-91fs)
2022/04/08(金) 22:14:19.86ID:AMkeYZ900738デフォルトの名無しさん (ワッチョイ 237c-7lVs)
2022/04/08(金) 22:18:44.47ID:7fG2FYL40 ヤンキー・ドゥードルが懐かしい
739デフォルトの名無しさん (ワッチョイ 4f34-e5Kb)
2022/04/09(土) 00:48:37.33ID:C63TJhml0 AIの定義が明確に定まってないので自己学習して勝手に洗練されていくものもAIだしただのマクロもAI
740デフォルトの名無しさん (ワッチョイ 6242-LXkm)
2022/04/09(土) 00:55:30.60ID:tyw5ZPAK0 AIは作るものじゃない
育むものなんだよ
育むものなんだよ
741デフォルトの名無しさん (アウアウウー Sabb-xb3m)
2022/04/09(土) 02:28:28.01ID:FQQX8rtBa742デフォルトの名無しさん (ワッチョイ cb5f-5i8i)
2022/04/09(土) 06:04:10.90ID:+bGajSMm0 任意の列が左端に来るように水平スクロールする方法ってある?
Application.Gotoで左端に寄せてSmallScrollで上下位置を調整してるけど完全な水平スクロールにはならないんだよね
Application.Gotoで左端に寄せてSmallScrollで上下位置を調整してるけど完全な水平スクロールにはならないんだよね
743デフォルトの名無しさん (ワッチョイ 1b17-mmuM)
2022/04/09(土) 07:34:48.36ID:Dec5MFVZ0 With ActiveWindow
.ScrollRow = x
.ScrollColumn = y
End With
.ScrollRow = x
.ScrollColumn = y
End With
744デフォルトの名無しさん (ワッチョイ cb5f-5i8i)
2022/04/09(土) 08:12:43.36ID:+bGajSMm0 >>743
それも試したけど、アクティブセルが変わると数値が変わらない?
それも試したけど、アクティブセルが変わると数値が変わらない?
745デフォルトの名無しさん (ワッチョイ cb5f-5i8i)
2022/04/09(土) 08:52:12.11ID:+bGajSMm0 任意の列とアクティブセルの列の差を求めればScrollRowで行けるかな?
今度試してみよう
今度試してみよう
746デフォルトの名無しさん (スプッッ Sd22-eTSu)
2022/04/09(土) 11:14:24.15ID:Mfv2lAJId Sub World()
Dim Abe As Virus
Set Abe = New prime minister
Abe.coin.End(xldown)
Abe.tax.End(xlup)
Abe.wing.End(xlright)
End World
Dim Abe As Virus
Set Abe = New prime minister
Abe.coin.End(xldown)
Abe.tax.End(xlup)
Abe.wing.End(xlright)
End World
747デフォルトの名無しさん (アウアウウー Sabb-xb3m)
2022/04/09(土) 12:54:27.64ID:FQQX8rtBa で、誰かがズームしたりページレイアウト変えたりして、
トラブルの元になると。
ウィンドウ系はいじらない方がいいと
職場のおじいちゃんが言ってた。
トラブルの元になると。
ウィンドウ系はいじらない方がいいと
職場のおじいちゃんが言ってた。
748デフォルトの名無しさん (ワッチョイ e202-NVQH)
2022/04/09(土) 13:45:19.95ID:6rDUdJJw0 アース、ファイア、ウォータ系の属性のほうがいいかもね
749デフォルトの名無しさん (アウアウウー Sabb-xb3m)
2022/04/09(土) 14:39:59.55ID:FQQX8rtBa Excel VBA の Window 関連のオブジェクトって、船に刻して剣を求むって感じ
走っている電車の中から、指で窓ガラスに風景を描くみたいな
走っている電車の中から、指で窓ガラスに風景を描くみたいな
750デフォルトの名無しさん (ワッチョイ cb5f-5i8i)
2022/04/09(土) 15:26:28.03ID:+bGajSMm0 さっぱり例えが分からんw
751デフォルトの名無しさん (ワッチョイ 7b68-xb3m)
2022/04/09(土) 16:04:42.29ID:2h0/Yyo40 詩的すぎるだろw
752デフォルトの名無しさん (ワッチョイ 9b2f-jtTv)
2022/04/09(土) 18:41:50.44ID:8cH1hwr70753デフォルトの名無しさん (ワッチョイ d7da-KjJm)
2022/04/09(土) 20:23:31.13ID:8/Ft6Y7L0 日本人だけど意味がさっぱりわからんw
754デフォルトの名無しさん (アウアウウー Sabb-xb3m)
2022/04/09(土) 22:16:01.68ID:XcpxlUbda ごめん失敗したテヘ
755デフォルトの名無しさん (ワッチョイ 67da-vba2)
2022/04/10(日) 01:02:21.87ID:tD6svEJl0 ヘッドレスChromeをseleniumやWebdriverなしでどうにかなりませんか?
756デフォルトの名無しさん (アウアウウー Sabb-xb3m)
2022/04/10(日) 19:56:53.98ID:anoG1hsda >>755
UiPathおすすめ
UiPathおすすめ
757デフォルトの名無しさん (ワッチョイ 7ba5-L4Li)
2022/04/11(月) 21:59:21.11ID:Kyp6sDnX0 オブジェクトの代入を同一プロジェクトで使いまわすことはできるでしょうか?
Public ws1 as worksheet
Module1
Sub test1()
Set ws1 = Worksheets("Sheet1")
ws1.Range("A1") = "Test1"
End Sub
Module2
Sub test2()
Set ws1 = Worksheets("Sheet1")
ws1.Range("A2") = "Test2"
End Sub
これを下記のようにできないかな、ということです。
Public ws1 as worksheet
Set ws1 = Worksheets("Sheet1")
Module1
Sub test1()
ws1.Range("A1") = "Test1"
End Sub
Module2
Sub test2()
ws1.Range("A2") = "Test2"
End Sub
Public ws1 as worksheet
Module1
Sub test1()
Set ws1 = Worksheets("Sheet1")
ws1.Range("A1") = "Test1"
End Sub
Module2
Sub test2()
Set ws1 = Worksheets("Sheet1")
ws1.Range("A2") = "Test2"
End Sub
これを下記のようにできないかな、ということです。
Public ws1 as worksheet
Set ws1 = Worksheets("Sheet1")
Module1
Sub test1()
ws1.Range("A1") = "Test1"
End Sub
Module2
Sub test2()
ws1.Range("A2") = "Test2"
End Sub
758デフォルトの名無しさん (ワッチョイ c6da-EhK1)
2022/04/11(月) 22:26:56.33ID:p2QF/trT0 なにがしたいのか
759デフォルトの名無しさん (スプッッ Sd22-eTSu)
2022/04/11(月) 22:56:21.06ID:7xr/cYmKd オブジェクトは無理でしょ
Funtionで対応すれば良い
最もそうしない方が良いからデフォで出来ないようになってることは考慮すべきだと思う
Funtionで対応すれば良い
最もそうしない方が良いからデフォで出来ないようになってることは考慮すべきだと思う
760デフォルトの名無しさん (ワッチョイ 1b17-mmuM)
2022/04/11(月) 23:25:19.91ID:9dLPe5470 ん?そもそもワークシートってオブジェクト化されてるんだからわざわざ変数にセットする必要なくない?
対象のシートがコードを書いているファイルにあるなら
Sheet1.Range("A1").Value = "Test1"
で良いでしょ?
対象のシートがコードを書いているファイルにあるなら
Sheet1.Range("A1").Value = "Test1"
で良いでしょ?
761デフォルトの名無しさん (ワッチョイ 7ba5-L4Li)
2022/04/11(月) 23:56:27.01ID:Kyp6sDnX0 簡略化するためにThisworkbookを省略して書きましたが、実際には
マクロ動作中にほかのブックを触っても大丈夫且つコードがすっきり
するようにSet ws1 = Thisworkbook.Worksheets("Sheet1")のように
しています
少し時間ができたので増築増築でややこしくなったコードを整理している
最中で、複数のプロシージャで使う固定のシートはまとめて変数にセットして
おこうかと思ったのですがFunctionで調べてみます、ありがとうございます
マクロ動作中にほかのブックを触っても大丈夫且つコードがすっきり
するようにSet ws1 = Thisworkbook.Worksheets("Sheet1")のように
しています
少し時間ができたので増築増築でややこしくなったコードを整理している
最中で、複数のプロシージャで使う固定のシートはまとめて変数にセットして
おこうかと思ったのですがFunctionで調べてみます、ありがとうございます
762デフォルトの名無しさん (ワッチョイ 9b2f-U3yj)
2022/04/11(月) 23:58:43.07ID:amT3mnzR0 変数を使いまわす(というか広域で使う)のは普通にできる
モジュールレベルでPublic変数定義するだけ
なんならモジュール名で修飾してもいい
ただ、変数の寿命が管理しにくいから、
中身がセットされてないとか、いつの間にか中身が消えてるとかいうことになるかもなw
モジュールレベルでPublic変数定義するだけ
なんならモジュール名で修飾してもいい
ただ、変数の寿命が管理しにくいから、
中身がセットされてないとか、いつの間にか中身が消えてるとかいうことになるかもなw
763デフォルトの名無しさん (ワッチョイ 1b17-mmuM)
2022/04/12(火) 00:23:20.44ID:ccOkbRo70 シートをオブジェクト名で指定すればどのブックを触っていようがそのコードが書いてあるブックから参照すると思うのだけど
>>761 がやろうとしてる事って他のブックのシートを変数に収納したい場合しか使わなくないか?
>>761 がやろうとしてる事って他のブックのシートを変数に収納したい場合しか使わなくないか?
764デフォルトの名無しさん (ワッチョイ 43ce-jTyu)
2022/04/12(火) 02:00:50.12ID:vEgugssg0765デフォルトの名無しさん (ワッチョイ 7b68-xb3m)
2022/04/12(火) 06:30:21.52ID:j+U2fOIu0 やるならこうか?
init()に色々初期化みたいなものをまとめて、毎回呼び出す
Public ws1
Sub init()
Set ws1 = Worksheets("sheet1")
End Sub
Sub foo()
Call init
Cells(1, 1) = 1
End Sub
Sub foo2()
Call init
Cells(2, 2) = 2
End Sub
init()に色々初期化みたいなものをまとめて、毎回呼び出す
Public ws1
Sub init()
Set ws1 = Worksheets("sheet1")
End Sub
Sub foo()
Call init
Cells(1, 1) = 1
End Sub
Sub foo2()
Call init
Cells(2, 2) = 2
End Sub
766デフォルトの名無しさん (ワッチョイ bbe6-hh9d)
2022/04/12(火) 06:46:39.08ID:da5RcI7d0 汎用性と独立性を確保するなら引数でシートを渡せ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- パワフル女性世界3位に高市首相 米誌フォーブス選出 [蚤の市★]
- 【米FRB】0.25%利下げ決定 3会合連続、雇用下支え [蚤の市★]
- テレ朝本社から社外スタッフの男性が転落し死亡 テレビ朝日がコメント [ひかり★]
- 【S.RIDE】「忘年会の幹事ずるい」 ソニー系配車アプリの広告が物議…… 運営が謝罪「配慮に欠ける不適切な表現」掲出終了に [ぐれ★]
- アイヌ民族の「戸籍簿」がヤフオクで落札 団体「人権無視」と憤り [蚤の市★]
- 「身を切る改革」どこへ? 維新「身内」への公金支出、地方でも続々 [蚤の市★]
- 高市「野党はもう債権とか為替の話はしないで!よく分からないから答えない!」 [884040186]
- 豚汁の弱点
- 人生がつまらんやつ、130円で大根買え。
- 【悲報】教育ママ「ギャオオオオオン!息子が大麻吸ってるのお!!」⇨中3の息子を警察に突き出し全てを終わらせる [455031798]
- 【画像】東京都民「助けて!満員電車もう無理いいぃぃいいぃぃぃいいいいいぃ😭」!!!! [732289945]
- 【堂上隼人】ソフトバンク幹部「よし更生してる」→現在までに逮捕12回、レイプ被害者15人
