[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 275 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Excel VBA 質問スレ Part76



1 名前:デフォルトの名無しさん mailto:sage [2022/05/01(日) 02:23:41.78 ID:2t63WK/jM.net]
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑2行に減ってるけど、同じ内容を3行に増やして貼り付けること

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

次スレは>>980が立てること
無理なら細かく安価指定

※前スレ
Excel VBA 質問スレ Part75
https://mevius.5ch.net/test/read.cgi/tech/1644384272/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured

108 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:45:40.00 ID:SLK6Xy6bp.net]
>>106
参照不可はない?

109 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 17:49:03.93 ID:i2BwfRJap.net]
>>83
依頼元の情報提供不足。対象件数とか。

110 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:29:54.61 ID:EFSZcQ6p0.net]
VBAで作ったブックを指定するにはどうやるのがいいんでしょうか
VBAで複数ブックを作るとBook1、Book2、…となりますが、
どうやってそれぞれのブックを指定してやればいいのかが分かりません

111 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 20:48:22.92 ID:xHyGsu5B0.net]
ブックの作成の際にワークブック変数にセットする
set=workbooks.add

112 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 21:20:44.06 ID:i/ziY72x0.net]
変数に格納するってのは名前をつけてあげるみたいな意味合いがある気がする

変数作ってセットすれば呼び出しやすい

113 名前:デフォルトの名無しさん (ワッチョイ ebda-yvGd) mailto:sage [2022/05/15(日) 22:58:08 ID:e0cA7YQF0.net]
Set wb = ThisWorkbook
Set ws = wb.Worksheets("sheet名")
とやっといて、
カーソル移動したいだけなのに、
ws.Range("B3").Select
とやったら、
「RangeクラスのSelectメソッドが失敗しました」
と出て動かなくなって・・・???

原因はRange.Selectやる前に
当該sheetをActivateしていないことだと
今日、ようやく知ったアタシが通り過ぎますよ・・・

114 名前:97 mailto:sage [2022/05/15(日) 23:36:58.31 ID:VONG1GsX0.net]
>>101
おっしゃる通りワークブックを開きたくなかったんです

諦めて>>100さんの手法でいきました

ありがとうございました。

115 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:39:04.92 ID:km049kvp0.net]
>>112
VBAやっててSelect使うことなんてほぼ無いんだからその仕様を知らないことを気にしなくていい

116 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 23:53:26.84 ID:sFHTlWBy0.net]
>>113
officetanaka.net/excel/vba/tips/tips28.htm
フルパス指定すればいけるっぽいけどそーゆー話ではないのかな?



117 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 00:14:35.90 ID:D08mu/WY0.net]
セルとかSelectするのは最後くらいだもんなあ

118 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 01:37:32.91 ID:PWfPx8Kl0.net]
>>107
無いんだよね
代入が出来ないだけで表示は出来るんだけど、
""の空文字すら入れられないのは何なのか…
型が一致しないエラーでもないし
仕方がないからDocument.writeで代用したけど

119 名前:デフォルトの名無しさん (ワッチョイ ebda-Lh2i) mailto:sage [2022/05/16(月) 07:25:27 ID:x3MSJzWb0.net]
>>114
気象庁の過去気象データ1時間値を
DLしようとしたら、
1日ごとにURLが違うので、
1日分を読んではコピペさせてるんだけど・・・
単体項目なら1年分一度に落とせるけど、
1観測地点の全項目は1日ごとの模様

120 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 09:05:21.75 ID:gw7DnXAE0.net]
>>118
データをコピペするだけならカーソル移動は必要ない
それと、1日ずつDLだと365回になるけど、項目ごとなら15項目、15回のDLで済むからずっと早く終わると思うんだけど

121 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 10:02:47.99 ID:a802uHDS0.net]
ワイなら大まかに
「データをURLでフェッチする」機能
「データをシートに表現する」機能
とかに分けてそれぞれの中でループする

どんなデータ取るんかとか知らんけど
過去の気象データなら変化ないんやろから(少しずつしか追加されないし)
あらかたDLしちゃって毎日追加する運用でよくね
Accessで動くか知らんがワイなら楽だし(R)DBにして、
Excelは表現に特化させる
まあDBとして考えるなら119の言うように特定のデータをカラムとして取り込むほうがいいけどね

122 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 11:38:04.10 ID:DOkjRxjB0.net]
>>115
この人の書くコードは読みやすいよね

123 名前:デフォルトの名無しさん mailto:sage [2022/05/16(月) 13:47:28.98 ID:CQNp6U12M.net]
>>119
>>118
> データをコピペするだけならカーソル移動は必要ない

そうなんだ・・・
あたしゃ、
単ページのDLとその後の整形は
PowerQuelyがやりやすかったので、
勢い、1日分ごと切って貼ってをVBAで・・・
って発想でやってた。
クエリー更新もVBAの中に入れて。

ネットの事例かき集めて
自己流で作ったのはこんな感じ。

' DBテーブルの最終行の次行を計算
k = Range("R_Row_DB_Title").Value
l = tbl3.ListRows.Count + k + 1

' 単位読取りテーブルのデータ行をコピーして、
' DBテーブル最終行の次行

124 名前:ゥら貼り付ける
Sheets("DL単位").Select ' この記述を入れないと次を認識しなかった
tbl2.DataBodyRange.Select
Selection.Copy
Sheets("DB").Select
Range("A" & l).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ActiveCell.SpecialCells(xlLastCell).Select
[]
[ここ壊れてます]

125 名前:デフォルトの名無しさん [2022/05/16(月) 22:38:43.92 ID:zF5DsILOd.net]
0 b
1 a
3 a
7 a
9 b
13 a
18 a
17 b

aがbに入れ替わったら、上に隣接するa群の一番上(1 a)の数字を参照し、9-1=8を入力
bがaに入れ替わったら、上に隣接するb群の一番上(9 b)の数字を参照し、9-13=-4を入力
これを終わりまで自動入力したいのですが、どう書けばいいでしょうか。
いまいち説明がうまくできなくてすみません。

126 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 06:57:27.10 ID:OSHWxoLA0.net]
>>110
ありがとうございます
まさかこんな単純な解決法だったなんて
勉強になりました



127 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 14:46:10.58 ID:le3TeRDS0.net]
>>123
こんな感じ?
https://i.imgur.com/1sgRHL7.png

128 名前:デフォルトの名無しさん (ブーイモ MMe1-mtI6) [2022/05/17(火) 19:15:44 ID:ZA1GChKVM.net]
>>123
>いまいち説明がうまくできなくてすみません。
問題を上手く説明できる事は、プログラミング能力の上達にとても大事な事。

129 名前:デフォルトの名無しさん [2022/05/17(火) 22:53:48.79 ID:bIs4gfyOd.net]
>>125
ありがとうございます。
試してみてるのですが、画像G14が何をしてるか教えていただけないでしょうか・・

>>126
(・へ・)

130 名前:デフォルトの名無しさん mailto:sage [2022/05/17(火) 23:08:31.99 ID:le3TeRDS0.net]
>>127
>上に隣接するa群の一番上(1 a)の数字を参照
この部分

E,F列は切り替わった部分を取得している。row()にすることで、切り替わった部分を取得できる
maxで、切り替わった直近を取得
あとはindexmatchでA列を取得

131 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 00:40:35.16 ID:54FLML710.net]
>>127
人様に迷惑掛けるだけの人?

132 名前:デフォルトの名無しさん [2022/05/18(水) 23:00:11.54 ID:08bF+6I50.net]
質問です
EXCELのアプリケーションを別途立ち上げて
それをVBAを実行しているブック側から制御することは可能でしょうか?
可能だとすればどのようにすれば実現できますか?

133 名前:デフォルトの名無しさん mailto:sage [2022/05/18(水) 23:31:31.92 ID:yWpeDHxGd.net]
Application.RUN

134 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 06:39:30.30 ID:3ImK9i5g0.net]
VBAエキスパートの本見てみたけどこの範囲なら取得するのは楽勝だな

135 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 12:33:14.63 ID:uClc3Hkf0.net]
VBAの資格、人気度高いね。
ただ企業によっては何それ??的な見方されるのがちょっと。。

136 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 15:57:56.76 ID:ednyHaa30.net]
VBAでWinアプリ制御するマクロの動画作ったんだが誰も見てくれないや。
そういう需要てないのか?



137 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 16:56:56.93 ID:OfQgMZCZ0.net]
>>134
API使ってバックグラウンドで制御してるなら見る

138 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 17:15:23.09 ID:ednyHaa30.net]
>>135
https://youtu.be/DL9MuwJfXVw

139 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:18:22.53 ID:H0TVdlz+M.net]
ゆっくり茶番劇® か

140 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 18:19:37.44 ID:OfQgMZCZ0.net]
>>136
面白そう、家帰ったら見よう

141 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 21:37:06.79 ID:3ImK9i5g0.net]
RPA使わなくてもVBAでも結構出来るんだよね
キーボード、マウス操作出来るしなんなら読み上げも出来るし
アプリ立ち上げと組み合わせれば色々出来る

142 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 22:26:16.70 ID:JItdutDu0.net]
RPAは自動化そのものだから、
VBAでRPAを実現してるだけだぞ

143 名前:デフォルトの名無しさん (ワッチョイ c38c-i+mZ) [2022/05/19(木) 23:19:27 ID:5QG/OJCT0.net]
>>136
動画名にExcelって必ず入れとかないと
この手のネタを見たい人に検索で見つけてもらえない

あと時々Excelで予定表の作り方とか番外編としてド素人受けするネタをエサとしてupするとか

144 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:27:11.45 ID:uClc3Hkf0.net]
ゆっくりの顔はこれから無料で使用できなくなるんだよね?

145 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:45:08.95 ID:EjpQ3dyV0.net]
できる
動画名にゆっくり茶番劇って入れたらダメ

146 名前:デフォルトの名無しさん mailto:sage [2022/05/19(木) 23:51:09.33 ID:ednyHaa30.net]
>>141
トンクス。
オレのExcel2013だから今風のネタが作れないんだよね。
祝日込の予定表作ろうかと思ったら、自分のやつじゃpowerquery使えないことに気づいたわ。
だから誰もやってないネタとしてRPAもどきをやってみた。



147 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 12:02:22.42 ID:QJ3dWDHN0.net]
2013でパワークエリ使っていた同僚いたけど、どうやったのだろ??

148 名前:デフォルトの名無しさん [2022/05/20(金) 14:24:00.71 ID:Sdn4LcDR0.net]
>>145
使えるぞ
>>144が馬鹿なだけ

149 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 15:47:49.30 ID:J0VXxMmC0.net]
>>144
まぁ、やってみなはれ。
https://www.microsoft.com/ja-jp/download/details.aspx?id=39379&CorrelationId=85f847dd-369e-4417-b604-6a2f3c673084

150 名前:144 mailto:sage [2022/05/20(金) 16:37:29.66 ID:zIX8lMtd0.net]
アドインを入れなきゃ使えんなんて知らんわ。
まあ、やってみるよ。

151 名前:デフォルトの名無しさん (ワッチョイ 7dda-o6RS) mailto:sage [2022/05/20(金) 18:17:06 ID:QJ3dWDHN0.net]
確かに。知っている人は少ないはず。2013にパワークエリアドイン。

152 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:07:42.32 ID:vMDI6+gYM.net]
>>149
使いたくて見つけられないのは馬鹿だと思うよ?

153 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:09:21.29 ID:7ynD7rzD0.net]
ニッチな動画すぎるわ
こういうのはたまに腕前を見せる程度でいいと思うぞ

154 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 21:34:55.10 ID:Dykg0reN0.net]
エクセル動画って意外と伸びないんだよ
再生数あげてる動画も、数年かけてやっとこさ5桁とかそんなん

155 名前:デフォルトの名無しさん mailto:sage [2022/05/20(金) 22:12:27.54 ID:jYa2tCV10.net]
文字には勝てんよwww

156 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 00:43:35.28 ID:tFOC1nFU0.net]
YouTubeでしょ?
Excel動画の一部で100万回とか200万回再生動画あるけど、あれは例外かな?
配信者が人気度高いとか?



157 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 01:12:54.43 ID:FuQQRFwo0.net]
ぶっちゃけいちいち動画にするのやめてくれとしか思わんな
テキストに書いてくれと

158 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 07:53:33.56 ID:QJ4+3poJ0.net]
それは見なきゃいいだけじゃね

159 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 08:06:57.86 ID:UbenPHXM0.net]
>>156


160 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 08:54:23.72 ID:ZErRlfK3d.net]
たいがいのことは検索すればブログと動画と両方出てくる
好きな方を見ろとしか

161 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 09:03:39.72 ID:9Ja/LFqb0.net]
>>153
文字だとさ、その分の数行を細切れに書くやつがいてさ、
その分だけ見せられても困る事が多い。
解説書気取りなんだろうけど。
VBAならいいけど、pythonとかだと全体が見れないとな。

162 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 12:06:30.15 ID:zgbylN/DM.net]
>>159
ドーガってソース全体見せながら饅頭が喋るの?

163 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 13:24:13.30 ID:yO41HbkGd.net]
64bitだとdatepickerが使えないんだけど代替有りますか?

164 名前:デフォルトの名無しさん mailto:sage [2022/05/21(土) 22:05:53.36 ID:UbenPHXM0.net]
>>161
無いんだな、これが
あと64bitじゃなくて2013か2016あたりから使えないはず

165 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 00:44:38.46 ID:VeiX84dqd.net]
クリップボードに

あああ いいい
123  たたたた   ららら 12ああ

000 1
かかか 


あかさ たなは 358 22558

のようにランダムな文字列や数字がはいっています。
空白や改行の数もランダムですがどちらも5個いないです。

あああ、や、いいい、の間は空白や改行のどちらかです。
文字列または数字を、空白か改行で区切って

横に10列ずつに並べたいです。
A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージです。


うまく伝わっているかわかりませんが、どのようなコードを書いたらいいですか?

166 名前:デフォルトの名無しさん [2022/05/22(日) 02:13:20.90 ID:EshCCJ/od.net]
>>163
まずはちゃんと伝えるように書け



167 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 02:46:34.46 ID:EqID4SVmM.net]
>>163
よくわからん部分もあるが
クリップボードからテキストフォーマットのデータをstrに読み込んで改行ごとに分割(spritかね)
分割した文字列を更にスペースごとに分割して2次元配列にいれる
あとはそれをセルに転写すればいいんじゃないの?
分けるのが改行と空白両方ならどっちかにリプレースしてからスプリット

168 名前:デフォルトの名無しさん (アウアウウー Sac7-xdJx) mailto:sage [2022/05/22(日) 06:43:53 ID:e+a5DD9Ja.net]
>>163
とりあえずその状態で欲しい結果を書け

169 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/22(日) 06:45:54 ID:g+ilDpCn0.net]
>>163
連続する改行と空白を消す。
for i = 1 to 5
a = Replace(a, vbCrLf & vbCrLf, "")
a = Replace(a, " " & ” ” , "")
next

改行を空白に置換する

splitで分ける

配列をセルに入れる

170 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/22(日) 06:46:20 ID:g+ilDpCn0.net]
>>166
A1に「かかか」B1に「いいい」おなじように繰り返してJ1に「あかさ」、次はA2に「たなは」が入るようなイメージで

171 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:05:25.80 ID:kuwcJLnp0.net]
どういう順番にしたらA1にかかかが来るのかがよく分からない

172 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:09:48.09 ID:g+ilDpCn0.net]
A1に「かかか」

A1に「あああ」

間違えてるだけだろ、それぐらい見抜こう

173 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 08:43:32.82 ID:kuwcJLnp0.net]
書かれてる仕様を思い込みで勝手に書き換えたらいかんでしょ
作り込む前に確認を取らなきゃダメだよ

174 名前:デフォルトの名無しさん (アウアウウー Sac7-xdJx) mailto:sage [2022/05/22(日) 09:43:55 ID:aVdyttIba.net]
>>168
Dim S As String
With CreateObject("new:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
.GetFromClipboard
S = .GetText
End With
With CreateObject("VBScript.RegExp")
.Pattern = "[ \n]+"
.Global = True
Dim R As Long
R = 1
Dim C As Long
C = 1
Dim T As Variant
For Each T In Split(.Replace(S, " "), " ")
Cells(R, C).Value = T
C = C + 1
If 10 < C Then
C = 1
R = R + 1
End If
Next
End With

175 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:01:24.95 ID:q4bvZkadM.net]
>>172
あらキレイ

176 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:11:15.36 ID:RbyXtd/h0.net]
>>173
綺麗に見えるだろ?
このコード、死んでるんだぜ…ヘヘッ



177 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 10:37:59.11 ID:TDPiVbwY0.net]
>>163
VBAスレでいうのもアレだと思うけど

「改行、スペースで区切られたテキストデータを、10個ずつ(10列ずつ)で改行されるデータとして抽出したい」
って考えると正規表現可能なテキストエディタでやったほうが良いような気がする。

( | |\r\n) を \t
\t+ を \t
((.*?\t){2}) を $1\r\n

にみたいな感じで

178 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 13:05:55.15 ID:QBTEeDJr0.net]
>>163
同じくVBAスレでいうのもアレだし>>172でよいと思うけど

powershell -c "(gcb -raw) -replace '\s+', """"`t"""" -replace '((?:[^\t]+\t){9}[^\t]+)(?:\t|$)', """"`$1`r`n""""|scb"

VBAから実行するなりバッチファイル(.bat)にして実行するなりすると
整形結果がクリップボードに入るのでA1を選択して貼り付け。

すでにExcel上にあるデータなら>>172とかが有力だけど、
入力元がクリップボードならクリップボード格納前後(VBA前)で
テキスト処理に向いた言語や手法(>>175)で整形したらいいんじゃないの、と思う。
餅は餅屋、ってことで。
今回だとクリップボード操作と正規表現向き内容なのでPowerShellが向いてそう。

・実行環境のOS(Windows 7で実行されうるか)
・文字列にダブルクォーテーションが含まれうるか
・「空白」の正確な定義(レアな空白を「空白」に含んでよいか)
・『A1に「かかか」』の謎
・この整形処理前後の処理(処理全体、本当の処理目的)
などにもよるけど。

179 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 19:14:42.01 ID:Np0e+b7dd.net]
常にそうだとは言わないけど、VBAでいろんなことしようとする人って
会社内でセキュリティに縛られてVBAしか使えないような環境でこっそりやってる場合が多いんじゃね

うちなんてpowershellさえ使えない

180 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:09:09.39 ID:2g8+RnwC0.net]
>>177
VBAとVBScript/Jscriptはそれの定番だよ。
IEがなくなるとスクレイピングができなくなるよな。
そういう環境下だと、どうするんだろう。

181 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:19:32.54 ID:uG5Z2bGad.net]
163です。
レスくださった方ありがとうございました。

結論から言うと、>>172を加工してなんとなくうまくできました。
A1セルは「あああ」が正しいです。すみません。

182 名前:デフォルトの名無しさん mailto:sage [2022/05/22(日) 21:33:47.57 ID:g+ilDpCn0.net]
それぐらい分かってるから大丈夫だ

183 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:38:33.02 ID:KrqlZBhkM.net]
表示するのにラグを発生させたい場合sleepかウェイトを試して見たのですがソースの途中に入れても実行最初に止まって全部表示されてしまうのですがなにかいい方法はないのでしょうか

184 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:51:32.07 ID:KArKRscP0.net]
何の表示だよ

185 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 17:58:05.38 ID:KrqlZBhkM.net]
セルに挿入です
for文を挟んでいるとどうもすべて止まって一括表示されてしまいます

186 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 18:38:04.00 ID:nw7KfNpjD.net]
ループ内で都度再表示させればいいんじゃねーの



187 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 18:45:16.94 ID:S7FOVsdv0.net]
excelのシートのA列に◎オプションボタンActiveXを付けた、B列には商品名(3000件くらいある)を入れた。
◎ りんご
◎ みかん
◎ ぶどう
◎ ばなな

ぶどうを選んだら、TRUEになった番号は「3番」って返ってきているのですが、3000件を設定するのが大変で一括で設定できる方法があれば何かヒントを教えてください。

188 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:02:47.45 ID:BtAHO3WV0.net]
>>181
なんのためのラグかを書けばもう少しマシなやり方を教えてくれるかも

189 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 20:48:26.86 ID:e/WRg45j0.net]
>>183
DoEvents

190 名前:デフォルトの名無しさん (ワッチョイ 9768-A7oz) mailto:sage [2022/05/23(月) 20:58:57 ID:BtAHO3WV0.net]
Sub foo()
Range("a1:z100").Formula = "=rand()"
End Sub
こういうのを徐々に表示したいってなら、無理だ

191 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 21:43:20.23 ID:2/Utrmz50.net]
Do Eventsってイマイチちゃんと意味を理解しない状態で使ってる気がする

なんか図形でアニメみたいな動きさせるとか
入れると安定したり

192 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:30:03.20 ID:e/WRg45j0.net]
>>189
WindowsというOSの(ほぼ)すべてがイベントで動いてる
キー入力も画面表示もディスクアクセスも、何をするにもイベントが必ず使われる

普通に使ってるだけで、ユーザーの関知してないところで毎秒数十万回以上のイベントが発生してて、その一部は溜めたり無視することもできる
そこで溜まったイベントをまとめて処理するのがDoEvents

193 名前:デフォルトの名無しさん mailto:sage [2022/05/23(月) 23:44:03.30 ID:lhQpV8J50.net]
肥溜めの水で流すボタンだな

194 名前:デフォルトの名無しさん (スップ Sdba-LYQt) [2022/05/23(月) 23:54:22 ID:hvqO78Q3d.net]
>>190
中途半端な知識の人の回答だな
所詮はExcel使いか

195 名前:デフォルトの名無しさん (ワッチョイ abda-ZFfB) mailto:sage [2022/05/24(火) 00:04:30 ID:voOeNnQV0.net]
そうか?

196 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 01:52:28.78 ID:KUFh4POM0.net]
ググって読んでもさっぱりわからんがプロシージャの共通化(´・ω・`)これかも。



197 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 02:50:59.45 ID:iiO+sB1VM.net]
>>190
ExcelのVBAがWindowsの全てのイベントを処理しているとでも思ってんの?
いつの時代のWindowsだよ

198 名前:デフォルトの名無しさん (ワッチョイ 372f-tVBN) [2022/05/24(火) 06:09:04 ID:VAh5gH+20.net]
>>195
話せ。

199 名前:デフォルトの名無しさん (ワッチョイ 0eda-yjPv) [2022/05/24(火) 06:13:25 ID:3Lu4tPby0.net]
タスク

200 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 13:00:25.03 ID:voOeNnQV0.net]
60歳70歳の古参プログラマーじゃないんだからさ

201 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 21:38:10.53 ID:ylp1zOdx0.net]
Loop中など他からの割り込みの余地入れる=DoEventsかと思ってました
厳密な意味は知らずに使ってました

202 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:07:09.92 ID:kwRZndg1d.net]
昔はWindowsのイベントループそのものだったけど、今は>>199くらいの認識の方が正しいよ
今のExcelは裏でスレッド使いまくってるから複雑

203 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:24:18.97 ID:L7ubAEHL0.net]
少しまだ難しいですが、とりあえずはwindowsの処理で無視していた分を一旦返してあげるみたいな処理なのだと認識しました。

204 名前:デフォルトの名無しさん mailto:sage [2022/05/24(火) 22:30:40.02 ID:1UrgJSe10.net]
昔はシングルコアで激重だったから適度に返さないとすぐに応答なしになった
今はマルチタスクで割と重い処理も平気

205 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 05:02:47.05 ID:1b7KkSYk0.net]
個人用マクロブックのプロシージャからシートに挿入されているマクロのボタンを押す方法を教えて下さい

206 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:07:16.42 ID:BON/kfv30.net]
privateを削除するんじゃなくて?
物理的にクリック?



207 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:43:21.13 ID:1b7KkSYk0.net]
物理的にではなくシート側のボタンのクリックイベントのプロシージャを個人用マクロブックのプロシージャから動かしたいです。

208 名前:デフォルトの名無しさん mailto:sage [2022/05/25(水) 06:45:16.14 ID:1b7KkSYk0.net]
application.runは駄目でした






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef