Excel VBA 質問スレ Part72

レス数が950を超えています。1000を超えると書き込みができなくなります。
2021/07/18(日) 08:42:15.37ID:KskL7bEXd
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付けるナリ

ExcelのVBAに関する質問スレナリ
コード書き込みや作成依頼もOKナリ

※前スレ
Excel VBA 質問スレ Part70
https://mevius.5ch.net/test/read.cgi/tech/1616072923/
Excel VBA 質問スレ Part71
https://mevius.5ch.net/test/read.cgi/tech/1621914481/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2021/09/09(木) 10:11:27.57ID:zJmTPnJXM
>>895
チェックボックスみたいなテキストでやる
2021/09/09(木) 10:12:10.09ID:FIynLA9Dd
>>896
自分も同じことを思ったけど解決策にならないレスはせずに放置がいいと思う
理解していけばしていくほどやれることを絞って考えていくようになるかと
2021/09/09(木) 10:25:59.17ID:4jr1qQtOd
参考 チェックボックスの絵文字 使用は推奨しない

2021/09/09(木) 10:27:08.70ID:2Kg/wmz7M
>>895
ダブルクリックかライトクリックイベントで背景色変えるとかなんか印を付けるとかした方が楽そう
2021/09/09(木) 10:32:22.27ID:IpCo+OYQ0
>>895
普通にその方法でいいじゃんと思うけど、ダブルクリック必須なの?
チェックボックスの操作ならせめてシングルクリックだと思うけど。

マウス必須ならA列にハイパーリンクを仕込んでおいて、イベント
ハンドラの中でどこが押されたかを判断して状態を反転させるという
方法もある。

ただこの場合A列は自由に入力可能なのでシートの保護を掛けることに
なると思うし、どの部分をどこまで編集可能とするかということとの
兼ね合いになると思う。
2021/09/09(木) 10:42:39.73ID:9k5sY4oP0
>>895
あなたの言ってることはダブルクリックとかチェックボックスとプルダウンとか意味不明なんだけど、やりたいことさえはっきりしてなら VBA でオブジェクトの追加コマンドを追加場所を1行から5000行まで変えながら回せばいい。
2021/09/09(木) 10:48:23.02ID:4tB32NIbH
>>902
セルをコピペすればセルに乗ってるオブジェクトも一緒にコピペされる
だからチェックボックスを5000個に増やすだけなら数クリックの手間だけで終わる
ブックが重くなるけどな
2021/09/09(木) 10:50:53.75ID:foh10V2pM
シングルクリックと間違えてました。
自動的に5000個作ると30分待っても終わらないので、ダメなのだと思ってました
2021/09/09(木) 10:53:21.37ID:foh10V2pM
>>897
>>896
チェックを入れた行だけ特定の書式にしてファイルとして出力する用途なので、そこは気にしないのです
2021/09/09(木) 11:01:26.77ID:4tB32NIbH
試しにやってみたけど、チェックボックス5000個コピペだけなら20秒ぐらいで終わったぞ
https://i.imgur.com/4Bo9Yvp.png
2021/09/09(木) 11:03:58.28ID:foh10V2pM
>>906
1000個なら一分待てば出来ました。
しかしその後の操作がめちゃくちゃ重くなるのでこうした使い方は一般的ではないのかな、という疑問がありました
2021/09/09(木) 11:07:12.46ID:foh10V2pM
>>897
おさわがせしました。
1000個作って、特定行を一行削除するだけでもとても完了に時間がかかるので、
この方の方法でしのぎます
2021/09/09(木) 11:21:19.40ID:37zPgm1s0
>>907
ちなみにどんなふうに削除してる?
2021/09/09(木) 14:10:09.39ID:m7/bNtYYa
クラスモジュールの引数に可変長引数を渡したくて、呼び出し側でその引数に変数をぶち込んで渡したいんだけど、これってやっぱりできないの?
2021/09/09(木) 19:38:24.58ID:7gPjCFSp0
>>895
sheetモジュールに記述
※ただ、選択済みのセルをクリックしてon/offができない

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

d = WorksheetFunction.Unicode(Cells(1, 1).Value)
Debug.Print (d) ' 38960

If Target.Column = 1 Then
Target.NumberFormatLocal = WorksheetFunction.Unichar(10004) & ";□;0;@"

If Target.Value = 0 Then Target.Value = -1
Target.Value = Target.Value * -1
End If
End Sub
2021/09/09(木) 19:39:38.73ID:7gPjCFSp0
デバッグ残ってたわ。こっちで

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

'A列のみ
If Target.Column = 1 Then
'書式設定を設定
Target.NumberFormatLocal = WorksheetFunction.Unichar(10004) & ";□;0;@"
'-1かけて反転させる
If Target.Value = 0 Then Target.Value = -1
Target.Value = Target.Value * -1
End If

End Sub
2021/09/09(木) 19:55:23.82ID:zfiF925t0
関連スレ建てたよ

VBAなんでも質問スレ Part3
https://mevius.5ch.net/test/read.cgi/tech/1631184381/
2021/09/09(木) 23:48:42.23ID:ULMewu8MM
>>910
delimiterで値を連結して一つの文字列にして渡し
それを受け取った側で処理するとかw
2021/09/10(金) 00:39:56.77ID:Ovs2Qwn/0
>>914
なるほど
無理やりすぎて草
2021/09/10(金) 00:57:16.66ID:cGWG4Dd90
>>910
ちょっとなに言ってるかわかんないけど
ParamArray とかそういうこと?
2021/09/10(金) 01:37:01.01ID:k/ICsAd30
>>910
恰好つけて内容端折ったり、初心者に有りがちなオレオレ用語使ってるせいで意味不明
ちゃんと質問したら回答や代案出してくれる人いると思うよ
2021/09/10(金) 06:29:18.76ID:SjJWgB1Wd
エスパーしてみるとオーバーロードしたいってこと?
2021/09/10(金) 07:09:26.44ID:LHgBQKs+0
>>910てParamArrayでいいじゃん(いいじゃん)
2021/09/10(金) 12:04:43.32ID:9zsJDEjAa
言葉足らずで申し訳ない


・クラスモジュールでtestSubを作る

・testSubには引数として複数の文字列(パス)を入れたいが、場合によってはいれる数が変わるので可変長引数として渡したい→paramArrayを使った

・標準モジュールでtestSubを呼び出すときに引数に文字列直打ちで入力→これは呼び出せた
例 class.testSub(“a”, “b”, ”c”) →OK


・一方で引数に参照渡し?で変数を入れることができなかった

Dim a as string:a = “a”
Dim b as string:a = “b”
Dim c as string:a = “c”

class.testSub(a, b, c) →エラー

まとめ:参照渡し+可変長引数を実現する方法はありますか?という質問です
921デフォルトの名無しさん (ラクッペペ MM3e-oWuh)
垢版 |
2021/09/10(金) 12:33:58.83ID:LPBZaVhNM
へー、どんなエラーメッセージが出るんだい?
2021/09/10(金) 12:41:02.44ID:s5UDpNf0d
bとcに代入されてないように見えるんだけど…
2021/09/10(金) 12:44:45.11ID:9zsJDEjAa
>>922
誤字りました


>例
>Dim a as string:a = “a”
>Dim b as string:b = “b”
>Dim c as string:c = “c”

>class.testSub(a, b, c) →エラー
2021/09/10(金) 12:44:47.75ID:Wgizc1rOd
paramarrayは使ったことないからなんでエラーになるか知らないけど

optional byrefをいっぱい作れば解決か?
2021/09/10(金) 12:57:26.48ID:3anmc9lr0
うちではエラーにならないので、ParamArray以外のところで何か起きていると思う
2021/09/10(金) 13:42:46.46ID:cGWG4Dd90
とりあえずエラーメッセージぐらい書け
Call class.testSub(a, b, c) とかいうオチじゃないだろうな
2021/09/10(金) 13:48:25.18ID:cGWG4Dd90
あと言っとくけど、参照型と参照渡しはちがうからな
その例でいくなら(受け取り側で何やりたいかによるが)参照渡しである必要性なんてないんじゃね
2021/09/10(金) 15:05:47.68ID:bX+CqFZ4r
vbaの配列って絶対要素数がわかってないとだめなの?
他の言語のリストみたいにあとから追加とか削除したいんだけど
2021/09/10(金) 15:09:49.67ID:kF1ZwEU6a
>>928
一々ReDimしなきゃならん
それは嫌って人のためにCollectionがある
2021/09/10(金) 15:16:50.98ID:tlapevkG0
二次元配列以外はコレクションでいいよな
2021/09/10(金) 15:22:02.18ID:kF1ZwEU6a
Dictionaryも好きだけどね
用途によるね
2021/09/10(金) 15:47:18.98ID:bX+CqFZ4r
>>929
まじかよ 
メモリ確保の問題かな?
これは大きな弱点やな
2021/09/10(金) 16:10:25.64ID:bX+CqFZ4r
配列が可変だったら終わる作業が全く終わらん
マジでいらつくわ
934デフォルトの名無しさん (ワッチョイ eaf2-GwBl)
垢版 |
2021/09/10(金) 16:26:30.74ID:rHUFiRNt0
>>886>>887
コンパイルエラー
変数が定義されていません

とか出たのですが・・・。
c のトコがハイライトされています。
2021/09/10(金) 16:31:21.74ID:8Iwa8KgHa
>>934
変数が定義されてないなら定義すればいい
2021/09/10(金) 16:31:29.22ID:2Fxd4w670
Set range = ActiveSheet.Range("J10")
debug.print range.Cells(0, 0).address
この出力がI9になります
J10を期待したのですがどういう事ですか?
2021/09/10(金) 16:36:53.08ID:8Iwa8KgHa
>>936
ActiveSheet.Cells(1,1).AddressはA1になるでしょ?
んで、ActiveSheet.Cells(0,0).Addressはオブジェクト定義エラーになるでしょ

つまり、ワークシートの起点はA1であり、Cells(1,1)なわけ
だから、それから今回の事象は推察できるでしょ

余談だけどその変数名は絶対にやめた方がいい
VBAには既にRangeって単語があるんだから
2021/09/10(金) 16:41:57.41ID:8Iwa8KgHa
>>936
追記
あなたの考えどおりに動く、offsetって関数があるからそっち使ったらいいんじゃないかな
2021/09/10(金) 16:42:03.28ID:tlapevkG0
>>936
1,1にすればなるだろ
0だから行列がそれぞれマイナス1されてるんじゃね?
0入れたことないから予想だけど
2021/09/10(金) 16:52:02.92ID:2Fxd4w670
>>937-938
Cellsの引数はそのまま1つ目2つ目と考える事にします
変数名は質問用に適当にしましたすみません
offsetが距離1つ先2つ先なのでこちらを使用しようと思います
ありがとうございました

>>939
1,1にすればなりますが論点はそこではありません
2021/09/10(金) 16:54:59.11ID:tlapevkG0
0から始まる配列なんかを入れたいという感じか
2021/09/10(金) 17:05:41.13ID:cGWG4Dd90
>>934
変数が全角と半角混在してんじゃね
つかコードそのまま張れよ
2021/09/10(金) 17:13:14.83ID:8Iwa8KgHa
>>942
cの宣言してないだけ
2021/09/10(金) 17:47:04.78ID:k/ICsAd30
>>920
下に書いたようにParamArrayを使ったメソッドが定義されたクラスモジュールを作って、
それに宣言した変数を渡してみたけどエラーは起きないよ。

後、「参照渡し」で有る事を気にしてるけど、ParamArrayが指定された引数は参照渡しになる。
例えばtestSub内でargs(0)に適当な値を割り当てると、呼び出し元のcaller関数のaの値も変わる。

クラスモジュール(class.cls)
Public Sub testSub(ParamArray args())
Dim arg
For Each arg In args
If VarType(arg) = vbString Then Debug.Print arg;
Next
End Sub

標準モジュール
Sub caller()
Dim a As String: a = "a"
Dim b As String: b = "b"
Dim c As String: c = "c"
Dim Class As New Class
Class.testSub a, b, c
'イミディエイトウインドウ: abc
End Sub

だからこっちが質問内容を取り違えてるんだと思うんだけど、どこが違う?
それとエラーメッセージを教えて欲しい
もし意味が分かるならコンパイルエラーか実行時エラーかも知りたい
2021/09/10(金) 18:37:19.42ID:k/ICsAd30
>>934
Columnsで列ごとに取り出す方法で短く、分かりやすくしてみた

Sub PrintOut()
Dim Column As Range
For Each Column In Range("D1:H4").Columns '指定範囲を一列ごと取り出す
Range("A1:A4").Value = Column.Value '取り出した一列の値をA1:A4に張り付ける
ActiveWindow.SelectedSheets.PrintOut
Next
End Sub

ちなみにこういうのはActive***とセル番号指定じゃなくて、
シートモジュールとテーブル使った方がメンテしやすくなる。

A1:A4とD1:H4にそれぞれテーブルを作成(セルを選択して「ホーム」リボンの「テーブルとして書式設定」)し、
A1:A4のテーブル名を「コピー先」、D1:H4のテーブル名を「コピー元一覧」にする。
そのシートのシートモジュールに次の様なメソッドを定義する

Sub MyPrintOut()
Dim Column As ListColumn
For Each Column In ListObjects("コピー元一覧").ListColumns
ListObjects("コピー先").Value = Column.DataBodyRange.Value
ActiveWindow.SelectedSheets.PrintOut
Next
End Sub

やってることは一緒だけど、
・コピペする(される)セルの番地が変わっても動く
・D1:H4の範囲が増えてもテーブルを範囲を変更するだけで動く
・「コピー元一覧」から「コピー先」に張り付けてるのがソースを見ただけで分かる
とメリットだらけ
2021/09/10(金) 21:16:37.69ID:cbJJzriEM
>>937
> 余談だけどその変数名は絶対にやめた方がいい
> VBAには既にRangeって単語があるんだから
なぜ?
VBAは型の名前空間と変数等の名前空間違うから問題なく動くぞ
2021/09/10(金) 21:38:37.34ID:2Fxd4w670
>>946
そういう問題じゃないんですよ
2021/09/10(金) 21:40:05.19ID:TT1mfVcaM
>>947
だからどういう問題かを書けないなら黙ってなよ
2021/09/10(金) 21:43:02.76ID:2Fxd4w670
>>948
動くかどうかという話ではないので論点はそこではありません
2021/09/10(金) 22:07:47.67ID:rk4qX9ha0
動かすだけならグローバルに配列つくればいいわな
2021/09/10(金) 22:16:10.75ID:cbJJzriEM
>>949
ああ説明できないのかしたくないのかは知らんけどそういうことしか書けないのな
まあ君はそれでいいと思うよw
2021/09/10(金) 22:19:16.50ID:rrgK5Yqx0
>>951
可読性の面もあるし、変数名の意味付けの面もあるだろう
Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード
知らんけど
2021/09/10(金) 22:20:43.81ID:oDrMz70O0
難癖つけててワロタ
2021/09/10(金) 22:37:14.80ID:sbKq7iyBM
>>952
> Rangeって書かれても、どんな目的で何のRangeを変数に入れたのかが分かるように書くのが綺麗なコード
例えば指定された範囲にいくつかの装飾を適用する
Private Sub 装飾(Range As Range)
With Range
...
End With
End Sub
君なら引数の名前をどうする?
2021/09/10(金) 22:56:49.10ID:rrgK5Yqx0
Excelの装飾ってのがよくわからんけど、書式のこと?

関数っぽい書き方してるからこんなんでいいんじゃないの

Private Sub SetFormat_to_TargetRange(ByVal TargetRange As Range)
With TargetRange
...
End With
End Sub
2021/09/10(金) 23:04:12.45ID:k/ICsAd30
文脈的に明らかならRange As Rangeいいと思うけどね。

あと、「Rangeオブジェクト」である以上の情報がない変数や引数に対して無理やり名づけようとしても、
結局TargetRange的な抽象的な名前になっちゃう事もある。
2021/09/10(金) 23:06:14.39ID:k/ICsAd30
>>955
流石にそれは冗長すぎて逆に読みにくいだろ・・・
2021/09/10(金) 23:11:20.56ID:LHgBQKs+0
>>954
そこはtarget as rangeでいいと思う
一番読みやすい

自分しか使わない場合でもrange as rangeは使わないかな
vbaの場合、引数なしの関数と変数って見分けが付きにくい
ってかなんだこれエラーになるぞ

Sub foo()
Dim Calculate As Long
Calculate
End Sub

これはエラーにならない
Sub foo()
Dim Calculate As Long
End Sub

これもエラーにならない
Sub foo()
Calculate
End Sub

変数名と関数名がかぶると変数が優先される?
まぁ何にしろ、こんな事は避けたいから俺はかぶらないようにするけどね
2021/09/10(金) 23:15:36.34ID:rrgK5Yqx0
多少長くても要素要素は省いちゃメンテが大変になるから多少冗長でも構わないスタンスで

単語の簡素化はしてもいいなら関数名をSetFmt_TgtRngとかにするかもね

あとそもそも、挙げられた例は不適切では?
今回話題になってるのは呼び出し先の(汎用的に使える)関数での変数名ではなくて、呼び出し元での変数名かと
2021/09/10(金) 23:25:05.99ID:k/ICsAd30
>>958
再定義(シャドーイング)されてるだけ。
親スコープから継承されてる宣言名(今回で言えばオブジェクト名.Calculate)を再定義すると、定義が上書きされる。

Calculateは整数として再定義されたので、そのスコープではCalculateだけなら暗黙的に整数になる。
明示的に「オブジェクト名.Calculate」とすればメソッドとしてのCalculateを使用できる
2021/09/11(土) 00:00:09.96ID:qqZDVqkP0
personal.xlsbを複数の端末で共有したいので共有フォルダーにおいています.
XLSTARTのpersonal.xlsbは削除して共有フォルダーのpersonal.xlsbへのショートカットをおいています.
エクセルが起動するときにpersonal.xlsbを開くかどうか毎回聞いてきます
(セキュリティのマクロの設定は「警告を表示して全てのマクロを無効にする」です)

毎回開くを押すのが面倒なので共有フォルダーのpersonal.xlsbだけ常時開くような設定はできないでしょうか?
2021/09/11(土) 07:08:07.40ID:M0KgNEQw0
>>960
ありがとうございます
こんな機能あったのか、名前被るとエラーになると思って避けてたわ
2021/09/11(土) 08:32:29.27ID:uUbGGWZvM
>>962
スコープを持った言語ではたいてい内側のスコープが優先されるよ
中にはあえてエラーにする言語もあるけど
https://docs.microsoft.com/ja-jp/dotnet/csharp/misc/cs0136
2021/09/11(土) 09:37:25.87ID:3jGknNChp
>>955
関数の大きさにもよるな
小さくてすぐ上に引数設定して
型が見えてるようなのはvalueでいいと思う
少しごちゃごちゃして見辛いのは
targetRangeでいいと思うし
更にもう少し大きくなって業務的な
意味を持つようになったらその名前付ければ
いいんじゃないかな
2021/09/11(土) 10:18:08.93ID:JYcIgh+V0
>>936です
質問用に最少構成にする時点でもう少し変数名に気を付けるべきでした
変な流れになってすみません
2021/09/11(土) 10:49:48.68ID:eXg+YAmHM
>>964
Valueはないわ…
2021/09/11(土) 12:17:24.93ID:qqZDVqkP0
>>966
そうだよな。value指定ではフォーマット変更は無理だよな
2021/09/11(土) 13:14:28.26ID:GnKWsobMa
Valueだけはねぇわ
targetとtmpとi・j・kとrくらいしか意味の薄い変数は使わないようにしないと
2021/09/11(土) 13:57:33.58ID:SrjYrNmNM
m,nも
2021/09/11(土) 14:37:20.09ID:M0KgNEQw0
i・j・k

顔文字かと思った
2021/09/12(日) 11:12:03.90ID:up1UF/mUp
valueがダメだと言ってる奴は恐らくプロパティとか
プロパティの使えない他言語とか使ったことのない井の中の蛙という奴だな

VBAしかやってないジジイにはよくあること
2021/09/12(日) 11:42:37.67ID:igJhGb/40
>>971
君、韓国人?
2021/09/12(日) 11:48:24.82ID:3Dv8YdNb0
韓国をばかにするな!ITに関しては日本より進んでいるぞ
2021/09/12(日) 12:10:04.57ID:tsfiI8be0
どこ見て言ってんだか
2021/09/12(日) 12:15:32.69ID:3Dv8YdNb0
ここ見ててんだよ
2021/09/12(日) 12:55:49.25ID:xXC+mfefM
>>971
またチンケなマウント取りが来たなw
>>954の引数としてValueはないわって話
値としての用途ならValueもよく使うよ
2021/09/12(日) 13:36:49.25ID:5xdi3uAF0
オブジェクト型のRange型なのに、Valueを変数名にするのはVBAの常識的にNGなのは自明
2021/09/12(日) 14:09:17.30ID:3Dv8YdNb0
>>977

> Valueを変数名にする
変数名の適否ではなくって、ByValで値引き渡しにしたらもとの範囲のフォーマットを変更できないという話じゃないのか?
2021/09/12(日) 16:11:41.17ID:INS7ikYU0
>>978
今問題にしてたのは変数(引数)名であって引数の渡し方ではないのだが
参照型と参照渡しとちゃんと区別して理解してる?
2021/09/12(日) 16:21:24.92ID:aVK/EU7g0
元の元は>>936(私)でdim range as rangeに対してsetしたのですが
引数としてrange as rangeとされている状態でsetする事なんてあるのですか?
普通は無いなら途中から引数の話になるのもずれてません?
2021/09/12(日) 16:31:54.19ID:pHewVqE+0
そう言えばデコレーターパターンとかでは
valueはよく見るけどreferって見ないよね
なんでだろ?
2021/09/12(日) 16:37:26.61ID:3Dv8YdNb0
>>979
955の話じゃないのか?
誤解してたらすまん。
2021/09/12(日) 18:56:51.30ID:up1UF/mUp
>>981
それは引数が何かの値という意味で
プログラム的な参照とか値とかは関係ないからさ
2021/09/12(日) 19:28:40.93ID:qUARoTjRM
>>980
お前さんの普通がわからんけど、複数のレンジを返したいならそういうケースもあると思うよ
そもそも>>952は名前付けの話でSet云々の話に限定はしてないと思うし
985デフォルトの名無しさん (ワッチョイ a6ba-WYzC)
垢版 |
2021/09/12(日) 21:17:53.40ID:K6Dv6PKH0
ttps://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251&codecheck-sjis=%E3%81%AB%E3%81%BB%E3%82%93%E3%81%AD%E3%81%A3%E3%81%A8%E3%82%8F%E3%83%BC%E3%81%8F%E3%81%84%E3%82%93%E3%81%B5%E3%81%89%E3%82%81%E3%83%BC%E3%81%97%E3%82%87%E3%82%93%E3%81%9B%E3%82%93%E3%81%9F%E3%83%BC&submit=
に表示されているネットワーク名「YAHOO-NET」を取得しようとしているのですが、
Cells(1, 2) = objIE.Document.getElementsByTagName("pre").innerText
ではメソッドがサポートされいないとエラー表示されます。
何がいけないのでしょうか?
2021/09/12(日) 21:29:23.70ID:Nc1wnmSN0
普段使ってないから問題点がこれ意外にもあるかわからないが
Cells(1, 2) = objIE.Document.getElementsByTagName("pre")(1).innerText
これでどう?
2021/09/12(日) 21:29:29.14ID:wxf2x8Lb0
VBAとJavaScriptが、混ざっちゃった感じかな
988デフォルトの名無しさん (ワッチョイ 7935-xJJl)
垢版 |
2021/09/12(日) 22:10:03.90ID:UcZJH98c0
n時間後にエンターキーを押すプログラムってどう作るんだ?初心者にもわかりやすく誰か教えて
2021/09/12(日) 22:16:01.50ID:wxf2x8Lb0
「n時間後にアラームを設定して、鳴ったらENTERを押せ!」
と、命令する
990デフォルトの名無しさん (ワッチョイ a6ba-WYzC)
垢版 |
2021/09/12(日) 22:27:13.14ID:K6Dv6PKH0
>>986
ありがとうございます。
「オブジェクト変数がセットされていません」というエラーメッセージが出ており、検証はできておりませんが、いけそうな気がします。
ページ遷移したらobjIE.Documentに遷移先の情報が自動で設定されないのかもしれません。
2021/09/12(日) 22:28:25.73ID:8PbYCWHKH
>>988
基本はこうだけど、このままだとタイマーを仕掛けたのを忘れてて、ほかの作業をしてる時に急にEnterが押されてびっくりすると思うよ

Sub n時間後にEnterを押す()
  n = 1 'n時間を指定
  n時間後 = Now + TimeValue(n & ":00:00") 'n時間後が何時何分か計算する
  Do
    DoEvents
  Loop Until Now >= n時間後 'n時間誤まで待つ
  SendKeys "~" 'Enterを押す
End Sub
2021/09/12(日) 23:27:46.85ID:Nc1wnmSN0
>>990
(1)じゃなかった
(0)だった
2021/09/13(月) 01:05:28.69ID:gLuGYsXi0
>>991
せめてOnTime使えよ
2021/09/13(月) 01:09:51.01ID:DeEefxbAd
OnTimeはあとからタイマーの設定を確認したり停始する方法がないから使い勝手が悪すぎるのがなあ
2021/09/13(月) 01:34:41.43ID:/cjB8lcQM
配列に保存しとくか
シートに書き出しておく
それを元に確認したりキャンセルする
2021/09/13(月) 02:28:08.29ID:SNtxNYpLd
>>990
URLはここまででいいんだよ
https://whois.nic.ad.jp/cgi-bin/whois_gw?key=182.22.16.251
レス数が950を超えています。1000を超えると書き込みができなくなります。