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
98 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:32:44.86 ID:qaSd7ep40.net] 1.xlsx、2.xlsx、3.xlsx、・・・、1000.xlsxという連番のブックがあって そのすべてにssssというシートがあって そのすべてのD2(R2C4)セルにデータがあるとして あるブックのA1~A1000に1~1000が入力してあって、 それぞれの隣(B1~B1000)に対応するブック(B500には500.xlsx)の シートssssのD2セルの中身を持ってくるのってどうすればいいですか? ExecuteExcel4Macroとか使ってそんなに難しくなくやれるかと思いきやまるでうまくいかない…
99 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 18:58:29.62 ID:lDPvxjtFD.net] >>94 方眼紙はじめとした使い方への皮肉だろ
100 名前:デフォルトの名無しさん [2022/05/14(土) 19:14:09.21 ID:yHnyJFGQ0.net] >>97 他に条件や例外がないなら自分で書いてる通り「そんなに難しくない」が、どこで詰まってるの?
101 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:20:25.44 ID:VTp6T5x/0.net] >>97 ExecuteExcel4Macroはデフォで無効にされた なんか知らんが俺も動かせなかったからもうベタ書きで https://forest.watch.impress.co.jp/docs/serial/yajiuma/1357642.html Sub Sample1() Set t = ThisWorkbook For i = 1 To 3 Set databook = Workbooks.Open(Filename:="C:\Users\81909\Downloads\" & i & ".xlsx") t.Sheets("ssss").Cells(i, 2) = databook.Sheets("ssss").Cells(2, 4) databook.Close Next End Sub >>98 それならok
102 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:26:19.82 ID:msymY1pp0.net] 内容あまり理解出来てないのかもしれないけど B500の行取得してワークブックオープンで引数ファイルパス500で開いてデータ抜きたいところ抜けば良いのではないでしょうか。 4使うあたり処理を重くしたくないのでワークブックを開きたくないようにも見えますが
103 名前:デフォルトの名無しさん mailto:sage [2022/05/14(土) 19:51:35.87 ID:jjfnS8MSd.net] こんな感じになる文字列を作ればいけないか?(フォルダ名とファイル名を変更していく) MsgBox ExecuteExcel4Macro("'フォルダ名\[1000.xlsx]ssss'!R2C4")
104 名前:デフォルトの名無しさん (ワッチョイ 91da-Hs+l) mailto:sage [2022/05/15(日) 01:22:22 ID:xmtudDvv0.net] MSHTML.HTMLDocumentのbody.outerHtmlに何か代入しようとすると、 あるPCでは問題なく出来るのに、 別のPCではアプリケーション定義のエラーがでる 何故? ソースは同じなのに
105 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 08:18:10.46 ID:Jt2O43PNd.net] 参照設定は?
106 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 13:24:19.34 ID:K6VbLnva0.net] >>68 即レスいただいてたのに遅くなりました。ありがとうございます。 常識なんですね。とてもためになりました。 少数が原因だろうと思いつつもローカルウィンドウの値は整数だし Fixしても発生するので困ってました。ありがとうございます。
107 名前:デフォルトの名無しさん mailto:sage [2022/05/15(日) 15:21:30.27 ID:xmtudDvv0.net] >>104 してある してないと違うエラーメッセージだったような
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 話せ。