20/07/08 05:18:34.50 hKBgVgLRr.net
この写真のように、例えば、3以下の数値をアクティブにする方法を教えて頂きたい
できれば、for next 構文はなしで
一発検索が望ましい。
URLリンク(i.imgur.com)
322:デフォルトの名無しさん (アウアウエー Sa13-c9t6)
20/07/08 06:25:23 yrsbI81qa.net
>>315> ReDimとは何だ?と
思ったらググって下さい。
ReDim BIN(Len(TEMP) / 2 - 1) As Byte
よくわからないですが動的配列を半分の長さで確保してるようです。
512÷2-1=255
forで繰り返すMid関数のスタート引数が1からのため配列の0番を1つ引算してまふ
「4D 54 68 64」ではなくてスペースなし「4D546864」か
Replace関数でスペースを削除しましょう
出来た文字列"4D546864"に対して
ループで前から2文字ずつ"&H"を付け足しているので
おそらく"&H4D&H54&H68&H64"が生成されるのでしょう
なので>>314のコードは全く意味がありません。
323:デフォルトの名無しさん (アウアウエー Sa13-c9t6)
20/07/08 06:49:42 yrsbI81qa.net
>>321> できれば、for next 構文はなしで
こんな縛りが無ければ普通にググって出てくるし以下で出来るだろうけど
複数のセルを選択する
URLリンク(officetanaka.net)
324:デフォルトの名無しさん
20/07/08 07:11:29.93 x0V53xaA0.net
つーかわざわざselectする意味あんの?
325:デフォルトの名無しさん
20/07/08 07:47:38.02 8s/zJrIHa.net
わからないで書いてたのか
326:デフォルトの名無しさん
20/07/08 07:58:30.68 krt5VVG+d.net
>>316
簡単だろw
Dim btByte() As Byte
Dim lngFN As Long
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, btByte
Close #lngFN
327:デフォルトの名無しさん
20/07/08 08:02:35.63 krt5VVG+d.net
>>326
途中で送信しちまった。
スマホで書いてるからどっか間違ってるかも。
Dim btByte() As Byte
Dim lngFN As Long
Redim btByte(5) As Byte
btByte(0)=&H4D
btByte(1)=&H54
btByte(2)=&H68
btByte(3)=&H54
btByte(4)=&H68
btByte(5)=&H64
lngFN=FreeFile
Open strPath For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
328:デフォルトの名無しさん
20/07/08 08:09:09.54 krt5VVG+d.net
>>314
というかね、Variantとは何か、Byteは何かとか考えた方が良い。
扱える範囲が違うということはメモリ上のサイズが違うということ。
6個のバイナリって6Byteのファイルってことだろ。
Variant1個で16Byteだぞ。
329:301 (ワッチョイ 2301-6wWl)
20/07/08 09:06:02 gPwSdoJG0.net
みなさんレスありがとうございます。 感謝します。
>>327
ってことは、結局、↓でよいのでしょうか?
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
330:301 (ワッチョイ 2301-6wWl)
20/07/08 09:09:44 gPwSdoJG0.net
あるいは、↓ですかね? ↑も↓も「Open "C:\hogehoge.bin" For Binary As #lngFN」の業でパス名が無効です、というエラーがでます。
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = btByte
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
331:デフォルトの名無しさん
20/07/08 09:23:12.29 yuZwXh1F0.net
>>330
>>307 > 基礎になるソースさえ教えてもらえれば、そこに色々付け加えてって自分に必要なバイナリファイルが作れるんですよ。
もういいやろ
332:301 (ワッチョイ 2301-6wWl)
20/07/08 09:32:29 gPwSdoJG0.net
つか、 FreeFile関数ってのがあるんですね 知らなかったw
333:301 (ワッチョイ 2301-6wWl)
20/07/08 09:38:09 gPwSdoJG0.net
じゃあ、↓のドコが悪いんだろ?
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "C:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
334:デフォルトの名無しさん (ワッチョイ bdda-ucCN)
20/07/08 09:40:18 R5JQxD1z0.net
>>332
つか、知らないことの方が多いくせに知ったかすんな
335:デフォルトの名無しさん
20/07/08 10:17:02.56 67N0qsNYr.net
>>333
「どこが悪いんだろ」
ではなく、
「下記のソースで実行すると~というエラーが出ます。
調べたところこのエラーの意味は~と理解していますが、~と修正したら今度は~というエラーが出ます。~~」
と言ったように、自分でなんとか解決したいという姿勢がないとサポートなんてしたくならないよ
本当は誰も君の相手なんかしなくてもいいんだ
君は人の時間をいただこうとしてることを考えること
336:デフォルトの名無しさん
20/07/08 10:25:36.83 kC98LgO60.net
みんなやさしいよね
どこまでも相手してあげてるんだから
337:デフォルトの名無しさん
20/07/08 10:37:36.28 vI+4Hlt3M.net
ハゲてきました。
市販の育毛剤で試すとエラーが出ます。
調べたところミノキシジルタブレットが聞くと理解しましたが、それを買って飲んだら今度は心臓ドキドキの副作用がでて命が危険だそうです。
どうしたらいいでしょうか?
338:デフォルトの名無しさん
20/07/08 10:37:36.28 yuZwXh1F0.net
暇つぶしでしょ
339:デフォルトの名無しさん
20/07/08 10:38:40.26 yuZwXh1F0.net
時間丸被りとかあんのな
340:デフォルトの名無しさん
20/07/08 10:41:28.04 Fq6DmaU+0.net
>>333
C:\に変なもの置くな
341:デフォルトの名無しさん
20/07/08 10:53:24.76 Ywdztm8P0.net
つーか動的配列にする意味あんの?
342:デフォルトの名無しさん
20/07/08 12:08:46.81 lp5P2pBOM.net
>>341
行間を読め
343:デフォルトの名無しさん
20/07/08 16:22:19.40 0tPjVu1x0.net
だから最初に馬鹿はお断りしときゃいいんだよ
344:301
20/07/08 17:12:58.80 gPwSdoJG0.net
つか、書き込み先を、D:\にしたら動いたwww
>>327さん、どうもありがとう!!!
こんなシンプルなソースでバイナリが書けるんです。
どんなにググッてもこんなにシンプルなソースは出て来ません。
vba史上の快挙です!
Sub test()
Dim btByte() As Byte
Dim lngFN As Long
ReDim btByte(5) As Byte
btByte(0) = &H4D
btByte(1) = &H54
btByte(2) = &H68
btByte(3) = &H54
btByte(4) = &H68
btByte(5) = &H64
lngFN = FreeFile
Open "D:\hogehoge.bin" For Binary As #lngFN
Put #lngFN, , btByte
Close #lngFN
End Sub
345:デフォルトの名無しさん
20/07/08 17:43:43.08 4BPfKF9s0.net
はい次の方
346:301
20/07/08 17:58:35.88 gPwSdoJG0.net
>>341
midiファイルというのはサイズが決まってないんですよ
347:デフォルトの名無しさん
20/07/08 19:59:20.87 7XVFoSLh0.net
>>344
そりゃVBAではなく、VBですらなく
BASICの範疇だからな
基本過ぎてわざわざWEBに上げたりしない
348:デフォルトの名無しさん (ワッチョイ a5ae-7/eX)
20/07/08 20:31:33 cTUxRwdY0.net
>>344
死ね
349:デフォルトの名無しさん
20/07/08 21:18:00.92 J4iDAbFT0.net
いつも馬鹿な質問ばかりで済みません。
Excelファイルをダブルクリックした際に他の人が先に開いていた場合、[読み取り専用]か、[通知]か聞かれます。
これをダイアログを出さずに最初から読専で開くようにすることは可能でしょうか?
(最初に開いた人は編集・保存できるという前提です)
外部から開く際のコントロールは簡単ですが、自分自身でコントロールするのは無理ですかね?
Workbook_Openでいろいろ試したのですが、どうもこのイベントよりも先にダイアログが発生しているようで、、、
無理だ、という回答でもいいです。ご意見ください。
350:デフォルトの名無しさん
20/07/08 21:25:31.07 eeGZOJTWa.net
>>349
URLリンク(www.shegolab.jp)
351:デフォルトの名無しさん
20/07/08 21:41:34.04 eWJ0cHmK0.net
>>349
まずちゃんと自分で調べよう
知識が伴ってないのにろくに調べもしないでは自分で解決どころか調べ方すら身に付かない
まぁ、はなから自分でやる気なんか無いのかもしれないが
352:デフォルトの名無しさん
20/07/08 21:42:45.60 J4iDAbFT0.net
>>350
情報ありがとうございます。
リンク先のものはだいたい既知の情報でした。
やっぱり自ファイルでの処理は難しそうですね。
353:デフォルトの名無しさん
20/07/08 21:46:48.09 J4iDAbFT0.net
>>351
いや、ここに書き込むときは相当調べて最後の頼みのつなで書き込んでます。
調べよう、と仰るということは、何かいい方法をご存じですか?
354:蟻人間
20/07/08 22:00:15.73 wtc6YQgJ0.net
>>353
ファイルの関連付けを変えて、マクロで迂回して。。。
。。。ここまで来るとウイルス判定かも(詳しい内容は自粛します)
355:デフォルトの名無しさん
20/07/08 22:05:22.90 J4iDAbFT0.net
>>354
う~~ん、あまり危ない橋は渡らないでおきます。
356:デフォルトの名無しさん
20/07/08 22:32:26.07 R5JQxD1z0.net
>>353
調べ方を調べてから言え
357:デフォルトの名無しさん
20/07/08 23:26:10.17 J4iDAbFT0.net
>>356
じゃあ、
>>349の繰り返しになりますが、、箇条書きにしますね。
●Excelファイルをダブルクリックした際の挙動についてです。
** つまり、外部から開くケースは除外です。(こちらのコントロールに苦はありません。昔から使っています)
「外部から」とは、具体的には、、以下のケースなど。
・ Workbooks.Openの引数で制御する。(VBSからのOpenも含む)
・ ContextMenuの"新規作成"で開く。
●他の人が開いていた場合のケースです。
** 最初に開いている人は編集・保存ができる前提です。
→ つまり、FileAttributeを最初からReadOnlyにするケースは除外です。
●上記の際の、[読専]|[通知]を聞いてくるDialogをバイパスしたい。
** 「最初から読専で開きたいわけではなく、誰かが開いているときは最初から読専にしたい」
→ つまり外部から開くケースにあたらない。
● 自ファイル側で判定したい、、、Workbook_Openで試したが、このイベントより先に
ダイアログが発生してる。
>>349とほぼ同じ内容ですが、これだけ書けばどこまでの理解で何を試したか読み取れますか?
358:デフォルトの名無しさん
20/07/08 23:40:00.14 4BPfKF9s0.net
てかそんなんできたらマルウェアの温床になるから出来ないって思っとけよ
共有化でも足りないんならあきらめろん
359:デフォルトの名無しさん
20/07/08 23:44:27.92 J4iDAbFT0.net
>>358
よくわかりませんが、わかりました。
本件Closeで。
360:デフォルトの名無しさん
20/07/09 00:12:21.12 dz7PM5ALa.net
>>346
midiはファイルの種類じゃない
361:デフォルトの名無しさん
20/07/09 00:12:27.29 ylhvfSy00.net
ファイルが書き込めない状態になってたら読み取り専用で開けばいいだけじゃん
362:デフォルトの名無しさん
20/07/09 00:13:47.48 dz7PM5ALa.net
>>357
きもい
363:デフォルトの名無しさん
20/07/09 00:17:27.90 dz7PM5ALa.net
社会で他の人も使うファイル勝手にいじるなよ
364:デフォルトの名無しさん (ワッチョイ cbdd-7n2a)
20/07/09 00:44:28 HzjnRl+40.net
>>363
お前には聞いてないから大丈夫だよ。
じゃ、お休み。
365:デフォルトの名無しさん
20/07/09 02:16:40.71 eQo6hEQpa.net
>>364
おまえに言ってない
366:デフォルトの名無しさん (ワッチョイ a58b-GkYD)
20/07/09 03:10:18 rHxVo6X00.net
IE制御のついての質問。
マクロでIE制御を使ってウェブ情報を取り込んでいるんですが、連続で作動させると稀に止まることがあります。
バグった時にタスクマネージャーの詳細をみると毎回「ielowutil.exe」のプロセスだけ残ってるんですよね。
タスクマネージャーでielowutil.exe を右クリックして強制終了させると、また上手く作動するんですが、この ielowutil.exe プロセスを強制的に終了させるコードとかないですかね。
ぐぐっても英語とか読めないのでわからない。誰か助けて
URLリンク(www.mrexcel.com)
367:デフォルトの名無しさん
20/07/09 03:59:15.57 uBlORkna0.net
taskkill /im ielowutil.exe
なんでもかんでもExcelでやろうとするな
368:301 (ワッチョイ 2301-6wWl)
20/07/09 05:30:09 C69oBRyL0.net
つか、>>344のソースの
> ReDim btByte(5) As Byte
> btByte(0) = &H4D
> btByte(1) = &H54
> btByte(2) = &H68
> btByte(3) = &H54
> btByte(4) = &H68
> btByte(5) = &H64
この部分で、btByteという変数に6個の16進数を代入していますが、もっとエレガントに代入する方法はないでしょうか?
実は定型文みたいのを50個ぐらい入れなきゃならないのです。
369:デフォルトの名無しさん
20/07/09 06:03:23.76 hGjJ3XRlM.net
ないです
次の方どうぞ
370:デフォルトの名無しさん (スプッッ Sd93-56/R)
20/07/09 06:34:39 pd2EiZRKd.net
>>368
そういうのは、あらかじめ用意したバイナリファイルから読み込んだ方がいいと思うんだけど
どうしてもソースに大量の16進数を直接書きたいなら
配列を使う方法
h = Array(&H4D, &H54, &H68, &H54, &H68, &H64)
For i = 0 To 5
btByte = h(i)
Next
文字列を使う方法
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Mid(h, i * 3 + 1, 2))
Next
371:301 (ワッチョイ 2301-6wWl)
20/07/09 06:37:41 C69oBRyL0.net
>>370
ありがとうございます。 感謝します。
372:デフォルトの名無しさん (スプッッ Sd93-56/R)
20/07/09 06:38:57 pd2EiZRKd.net
文字列を使う方法2
h = "4D,54,68,54,68,64"
For i = 0 To 5
btByte(i) = Val("&H" & Split(h, ",")(i))
Next
373:デフォルトの名無しさん (アウアウウー Sa09-X/TW)
20/07/09 06:57:38 150ctWWia.net
エレガント?
374:デフォルトの名無しさん
20/07/09 07:48:49.30 3iI6FAhKd.net
>>368
そのエレガントな方法を考えるのがプログラミングなんじゃないの?
50個をコードでどうにかするなら、それをコードに書かにゃならんからエレガントにはならん。
別の所に持って良いなら別途ファイルを用意しとけば良い。
設定とか50個程度ならどっかのシートに書いとくとかでも良い。
375:デフォルトの名無しさん (オッペケ Sra1-OOGl)
20/07/09 07:58:21 8/Q//t/ar.net
ほんとコードくれくれ君は自分で何も考えないな
あげる方も頭おかしいが
376:デフォルトの名無しさん
20/07/09 10:13:45.21 tVMvaFoW0.net
激しく同意する
ちなみにバイナリを作成するやり方で実行ファイルが作れるのでウイルシなんかも作れてしまうわけだが
377:デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
20/07/09 10:32:17 VstlXiSO0.net
モジュールから単体動作する関数を切り取って、別のモジュールにコピーしたのですが
変数の宣言がないとエラー表示されました。何度見ても宣言は正しくされているので?です。
新しく変数宣言して、置き換えると動作します。
こんなことあるのですか?
378:デフォルトの名無しさん (ワッチョイ 2d7c-6wWl)
20/07/09 10:47:12 ylhvfSy00.net
>>377
変数?定数?
379:デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
20/07/09 10:48:52 VstlXiSO0.net
すみません。変数ではなく定数(const)でした。
380:デフォルトの名無しさん
20/07/09 10:53:22.69 ylhvfSy00.net
>>379
グローバルな定数?
381:デフォルトの名無しさん
20/07/09 11:12:09.02 VstlXiSO0.net
ローカルです。
382:デフォルトの名無しさん
20/07/09 11:19:56.91 JYozEgDc0.net
option explicitの有無は?
383:デフォルトの名無しさん
20/07/09 11:21:50.10 DLLEuHaFa.net
>>376
みんなわざわざ煙に巻いてるのに言っちゃ
384:デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
20/07/09 11:26:19 VstlXiSO0.net
>>382
option explicitはあります。
385:デフォルトの名無しさん
20/07/09 11:30:45.63 ylhvfSy00.net
>>384
稀に起こるが原因は不明
エラーになった定数の宣言行を切り取り貼り付けすればとりあえず治る
386:デフォルトの名無しさん
20/07/09 12:02:59.73 JYozEgDc0.net
コピペしたとき?
実行したとき?
387:デフォルトの名無しさん (ワッチョイ cbb0-mXGD)
20/07/09 12:29:25 VstlXiSO0.net
>>385
問題の行をコメントアウトし、その下に同様の内容を書いたら動作しました!
稀に起きるのですか。初めて遭遇する現象です。
>>386
実行時です。
388:デフォルトの名無しさん
20/07/09 14:14:55.78 VstlXiSO0.net
>385>386
他の箇所でも同様のエラー起きましたが書き直せば動作しました。
ありがとうございました。
389:デフォルトの名無しさん (ラクッペペ MMcb-0WwX)
20/07/09 18:37:42 dhOVscThM.net
>>376
バイナリだからウイルスって意味不明
マクロウイルスはソースが見えるからウイルスじゃないとでも言うつもりか?
390:デフォルトの名無しさん (ワッチョイ 1b68-ucCN)
20/07/09 18:40:33 WyUmT5e70.net
>>389
その脳内変換が意味不明
391:デフォルトの名無しさん (ラクッペペ MMcb-0WwX)
20/07/09 18:53:47 dhOVscThM.net
バイナリに謎の恐怖心を持っているんだろ?
そもそも2進数じゃなくて16進数だ
392:デフォルトの名無しさん (ドコグロ MM93-65sm)
20/07/09 19:27:38 0UE7wqUeM.net
まあイチからバイナリ書き出しで実行ファイ作れるような人はこんな質問しないけどな
393:デフォルトの名無しさん
20/07/09 19:41:37.34 WyUmT5e70.net
>>391
その脳内変換が意味不明
394:デフォルトの名無しさん
20/07/09 19:50:25.19 tq6y70T30.net
元々の変な質問のせいでくだらない流れになった
はい次の方
395:デフォルトの名無しさん
20/07/09 20:05:26.54 SKtauNRXM.net
VBAに将来はありますか?
396:デフォルトの名無しさん
20/07/09 20:11:04.35 F9SMopSBM.net
>>395
Excelと共に生き続けるだろうね
Excelの将来と同じ
397:デフォルトの名無しさん
20/07/09 20:13:33.30 K5359iyV0.net
そういえばExcelにPython載るって話はどうなったの?
398:デフォルトの名無しさん
20/07/09 20:29:37.44 Qt+epPmk0.net
VBA
URLリンク(docs.microsoft.com)
VSTO
URLリンク(docs.microsoft.com)
Officeアドイン
URLリンク(docs.microsoft.com)
399:デフォルトの名無しさん (ワッチョイ 83ee-Bqa1)
20/07/09 21:13:12 54FX1SKx0.net
Dim objShell As Object ←値参照
Dim objExec As Object
Sub ie_kill()
Set objShell = CreateObject("WScript.Shell") ←これなに???なんで必要なの???
Set objExec = objShell.Exec("taskkill.exe /F /IM iexplore.exe") ←iexplore.exeをタスクキル
400:デフォルトの名無しさん
20/07/09 21:27:01.41 YMHQKg0aa.net
>>399
CreateObjectまんまオブジェクトを創造してます
401:デフォルトの名無しさん
20/07/09 21:31:09.68 36OHf5x10.net
New使っちゃいなよ
402:デフォルトの名無しさん
20/07/09 21:42:49.37 ylhvfSy00.net
>>399
参照設定をしていればいらない
403:デフォルトの名無しさん (ワッチョイ fdce-56/R)
20/07/10 10:20:58 O0QgyOqq0.net
>>397
OfficeやWindowsは開発者が妄想を公式ブログで垂れ流すのが恒例行事
それを公式発表だと世間が勝手に騒いでるだけ
404:デフォルトの名無しさん (ワッチョイ 83ee-Bqa1)
20/07/10 13:53:04 3B5Gxm0d0.net
ExcelってIE制御からedge制御できるようになった?
未だにIEが一番使い勝手いいの?
405:デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
20/07/10 14:38:15 91NkPSzZ0.net
ExcelってChrome制御できるようになった?
406:デフォルトの名無しさん
20/07/10 15:03:43.58 DnP9bxpW0.net
いまはExcelがブラウザを制御するのではなくてブラウザがExcelを制御する方向性が主流
VBAはあくまでExcel内で完結する作業に限定した言語であって外部との連携作業はOfficeアドイン(実体はJavaScriptなどのスクリプト言語)や
VSTO(VisualStdioで言語はC#が中心)で行なうのがMicrosoftの方針
Pytonはよく分からんけど上手くOfficeAPIを利用すれば出来るかもしれない
概要についてのドキュメントは>>398
407:デフォルトの名無しさん
20/07/10 15:20:21.38 TbXdOMZ+r.net
てゆかブラウザ操作するよりAPI叩いたりスクレイピングするほうが主流よね、今は
ずっと昔はExcelで入力してIEに反映させるとかあったけど、今じゃレガシーすぎる
408:デフォルトの名無しさん
20/07/10 17:42:22.09 OUgIsXw30.net
ウチはシステムが古くてAPIなんてものに対応してないので現役だわ。
409:デフォルトの名無しさん
20/07/10 20:17:34.10 R/wZjJlU0.net
人間も古いからちょうどいい
410:デフォルトの名無しさん (スップ Sd43-Cpkm)
20/07/10 21:41:25 rd+FvU1jd.net
>>407
API叩くのもスクレイピングも変わらんけどな。
何でやるかの違いくらい。
まあ、Chrome制御は出来んけどな。
WebDriver使えるから出来るとも言えるか。
何処から何処迄がExcelって話。
411:デフォルトの名無しさん (スップ Sd43-Cpkm)
20/07/10 21:42:22 rd+FvU1jd.net
>>406
VSIOは寧ろ廃れてるような気がするが。
412:デフォルトの名無しさん (スップ Sd43-Cpkm)
20/07/10 21:42:47 rd+FvU1jd.net
>>411
VSTOな。
413:デフォルトの名無しさん
20/07/10 22:02:00.46 c4ANmjzxa.net
>>412
VIOな
414:デフォルトの名無しさん
20/07/10 22:39:50.15 91NkPSzZ0.net
>>413
それはちん毛ちんこケツの穴のことだ
415:デフォルトの名無しさん
20/07/11 00:41:33.92 vLv3KjHj0.net
あかん、モーむり
sendkeys使いすぎてるせいで
Numlockキーがオンになったりオフになったり・・・
かと言って必ずオンオフ切り替わるかというとそうでもないし
誰か絶対100%常にNumlockオンになるコード教えてくれえ
416:デフォルトの名無しさん
20/07/11 01:11:16.23 2VuM3xocM.net
>>415
vbaでレジストリを操作できるから、そこに道があるかも知れない
417:デフォルトの名無しさん (ワッチョイ 9bc9-ucCN)
20/07/11 02:13:29 Eg2/WlgT0.net
>>415
2 つ以上の SendKeys ステートメントが連続して実行されると、NumLock キーがオフになる
418:デフォルトの名無しさん
20/07/11 02:29:45.71 6j9f8L+G0.net
>>415
URLリンク(santane.jp)
419:デフォルトの名無しさん
20/07/11 09:37:08.18 vLv3KjHj0.net
ありがとうございます
418の方法も試したんですが、なぜか一回目では適用されず
あと418の一番下にある、入力リストを展開するとは一体?
420:デフォルトの名無しさん
20/07/11 10:30:37.96 R2Hyt8Cad.net
>>415
Sendkeys使う奴は糞。
絶対に使っちゃいけないと言った方が事故が起こらないくらい事故が起きても不思議じゃない所で使う奴がいる。
421:デフォルトの名無しさん
20/07/11 10:36:45.99 QNz3pRQ00.net
糞!ですか
422:デフォルトの名無しさん
20/07/11 10:40:32.24 VwbCqtVvM.net
何年前からのバグなんだろうねこれって
423:デフォルトの名無しさん
20/07/11 10:45:18.55 R2Hyt8Cad.net
>>421
Sendkeysは基本的にコントロール出来ない。
他アプリを操作するにはもっとコントロール出来る方法がある。
どうにも出来ない時は仕方がないが、絶対に使わないつもりで、どうにもならない時だけ使うべきだね。
424:デフォルトの名無しさん
20/07/11 10:51:22.16 R2Hyt8Cad.net
あと、危険は承知でちょろっと使う時はある。
お手軽だから。
でも、それで使うことを許容すると危険もしらず、ちょろっとで済まない所で使う奴が出てくる。
425:デフォルトの名無しさん (ワッチョイ bdda-ucCN)
20/07/11 11:53:42 vrrLv2a80.net
Excelを頼りすぎ
426:デフォルトの名無しさん
20/07/11 11:59:27.85 8xOOoQBua.net
Excelで恋愛相談から今晩のおかずまで
427:デフォルトの名無しさん
20/07/11 12:25:50.11 DdDKJrYh0.net
sendkeysって手段としてしょうもなさすぎるんだよな
目的を整理すれば他にもっといいやり方があるはず
428:デフォルトの名無しさん
20/07/11 12:40:05.09 pqxpyZgt0.net
キーワードによる予測変換機能っぽいのをやろうとしたときに、
いいコード無いか探してたら使ってたなsendkeys
429:デフォルトの名無しさん (ワッチョイ 75f1-+b0N)
20/07/11 13:02:10 QNz3pRQ00.net
糞!
430:デフォルトの名無しさん
20/07/11 13:57:47.97 6j9f8L+G0.net
確実にコントロールしたいならAPI
URLリンク(www.vba-ie.net)
まあAPIも万能じゃないんだけど、今回はとりあえず使える
431:デフォルトの名無しさん
20/07/11 14:02:53.27 R2Hyt8Cad.net
>>430
いやいや、確かにSendkeysよりは良いけど、何でキーボードシュミレートしたいのよ。
オブジェクトに直接キーを送るとか、オブジェクトの動作そのものを実現するとかは無しか?
432:デフォルトの名無しさん
20/07/11 18:21:43.63 2M7rjl8q0.net
大抵のアプリは外部からの要求を受けるのはマウスとキーボードだけだから
433:デフォルトの名無しさん
20/07/11 18:52:58.44 6knL1xMy0.net
あ、ちょっと失礼。
ほんの少し前、テキストボックスに入力された数式をだったか
マクロだったかをプロシージャにして実行するってなことをやってたんだが
すっかり忘れてしまいました。
どうやるんでしたでしょうか。
OS;Windows 98
Excel 97
434:デフォルトの名無しさん (ワッチョイ 05da-ucCN)
20/07/11 19:37:48 Nux+IN340.net
>>418
そんな不具合見たことないな。
VBA限定で、VBSから使うと出ないとか?
435:デフォルトの名無しさん
20/07/11 20:21:11.98 UiWBFlGj0.net
>>433
死ね
436:デフォルトの名無しさん (ワッチョイ bdda-ucCN)
20/07/11 23:15:56 vrrLv2a80.net
>>433
そのうち思い出すから
437:デフォルトの名無しさん
20/07/12 08:33:32.60 lihdyx4V0.net
>>433
Application.Run
438:デフォルトの名無しさん (オイコラミネオ MM51-aL1r)
20/07/13 14:37:54 1lzMxcCPM.net
sendkeys問題解決しました
ありがとう!create object wscript.shell.sendkeysでうまいこと行けた
439:デフォルトの名無しさん
20/07/14 20:11:25.31 zXCz2P4SM.net
二つのieを起動して2つ目のieにpdfを表示させてそのpdfをexecwbのsaveasで名前をつけて保存したいのですが名前をつけて保存ダイアログに一つ目のieのファイルが保存項目として表示されてしまいます。どなたかわかる方教えてください。よろしくお願いします。
これがそのコードです getIE はシェル取得ファンクションです
長すぎると書き込めないので省略しました
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "URLリンク(book.impress.co.jp)
Dim ie2 As InternetExplorer
Set ie2 = CreateObject("InternetExplorer.Application")
ie2.Visible = True
ie2.Navigate2 "C:\\Desktop\test.pdf", 1
Set ie2 = getIE("test")
Dim test As String
test = "c:\test\test.pdf"
ie2.ExecWB OLECMDID_SAVEAS, OLECMDEXECOPT_DONTPROMPTUSER, test
End sub
440:デフォルトの名無しさん
20/07/15 02:33:14.34 ZAnqbcST0.net
Excelでやることか?
441:デフォルトの名無しさん
20/07/15 04:42:17.63 IqfNcqeZ0.net
>>439
5ch では、同じ質問のマルチポストは禁止です!
もう1つのスレの方で、やってください!
442:デフォルトの名無しさん
20/07/15 05:05:59.66 T7WU5W0H0.net
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
n = ws2.Cells(Rows.Count, "E").End(xlUp).Row
n = n + 1
For i = 2 To ws1.Cells(Rows.Count, "A").End(xlUp).Row
j = 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
ws2.Cells(n, 5).Value = ws1.Cells(i, j).Value
n = n + 1
j = j + 1
これが10回ほど続くんですか簡潔にかけませんか?
443:デフォルトの名無しさん
20/07/15 05:28:08.89 jQlbMrrka.net
え?VBAって二重ループ出来ないの?
エクセルVBAの二重ループについて
URLリンク(oshiete.goo.ne.jp)
444:デフォルトの名無しさん
20/07/15 07:31:51.88 e63KSG0L0.net
再計算をオフにしていても、VlookupとかIndex/Matchで参照されているセルを削除すると初回だけ滅茶苦茶重くなる
二回目からはアンドゥしようが削除しようが一瞬になる
この初回も重くならないようにしたいんですけど、初回だけどこかで再計算か何かが裏で動いてるんでしょうか?
445:デフォルトの名無しさん (ブーイモ MMa1-+2iy)
20/07/15 07:50:23 XJ3hJcChM.net
プリンタに接続してるんじゃね?
446:デフォルトの名無しさん (ワッチョイ fabc-3crd)
20/07/15 08:49:05 vPDzR3td0.net
記念パピコ
447:デフォルトの名無しさん (アウアウエー Sa02-l+/r)
20/07/15 09:01:25 yrzZGj8Ca.net
ちゅーちゅーちゅぶりらチュパカブラー
448:デフォルトの名無しさん
20/07/15 17:34:47.36 vYR4+hKTa.net
テーブルの特定列に入力されている値から選択できるドロップダウンリストを作りたいです
【要望】
・重複なし
・(できれば)空白は除く
449:デフォルトの名無しさん
20/07/15 17:39:29.54 yeW9Dlh/0.net
>>448
そうか
頑張れよ
ここは日記お断りだぞ
450:デフォルトの名無しさん
20/07/15 17:39:30.37 mQ5xmDA6a.net
>>444
キャッシュのなら場合そういう動作が正常
451:デフォルトの名無しさん
20/07/15 19:30:17.20 FYD4rmMFM.net
>>448
これがゆとり世代だ
452:デフォルトの名無しさん
20/07/15 20:33:22.18 1MtMgQ04F.net
質問してるじゃん
俺は答えられないけど
453:デフォルトの名無しさん
20/07/15 21:01:28.16 XJthZBxP0.net
「作りたいです」という決意表明だろ?
そう言えば誰かが勝手に手助けしてくれると思ってるのかね。
あ、本人かよ。
454:デフォルトの名無しさん
20/07/15 21:25:35.44 sBHz+ETb0.net
平成生まれと昭和生まれは少々使用する言語が違う。
同じように日本語とは言うけれど。
455:デフォルトの名無しさん
20/07/15 21:35:02.16 8IhCO+GMM.net
ゆとり世代は誰かが助けてくれて当然と思っているからな
456:デフォルトの名無しさん
20/07/15 21:38:36.33 sBHz+ETb0.net
そこら辺は見た目の影響も大きいんだよな。
イケメンだったり可愛かったりすると、助けてもらえるのが当たり前で生きてる。
一方、ちょっと残念な感じだと、助けてもらえることが無く生きてる。
そこら辺の感じ方が違うのは当然なんだよね。
457:デフォルトの名無しさん
20/07/15 22:18:05.17 onU8sBQ+a.net
俺じゃない誰かが助けてくれるんじゃね
458:デフォルトの名無しさん
20/07/15 22:44:18.56 ovUS+LpM0.net
覚えてものにしようと断固たる決意でマクロを完成させたけど
最初の方に組んだプロシージャを今見てもほとんど覚えてないわ
メンテナンスだけはできるようにコメントつけてあるけど
これがネットで拾い集めて基礎を学ばない相変わらずの俺のダメスタイル
459:デフォルトの名無しさん
20/07/15 23:23:50.74 xZi/KI4S0.net
コメント残してるだけだいぶマシ
460:デフォルトの名無しさん
20/07/16 00:53:10.42 9MD/+BL5M.net
個数や最終行などよく使う変数名は今後の為に統一させたほうがいいな
その時の気分でいろいろと変えると後で意味不明になる
461:デフォルトの名無しさん
20/07/16 02:52:22.64 OfRWrGue0.net
古いソースをコピペするからそうなる
462:デフォルトの名無しさん
20/07/16 09:14:27.30 PzZafv3e0.net
そして統一後気が変わって全て置換か
463:デフォルトの名無しさん
20/07/16 09:39:51.11 6lIeM5zt0.net
何の変数かコメント付けるだけで十分では
464:デフォルトの名無しさん
20/07/16 11:51:40.64 iXWxOn5X0.net
同じフォルダ内の"取引実績"ブックの"関東地区"シートのA列・B列・C列・J列・L列・AD列の
それぞれ2行目から最下行までを配列に入れる方法を教えてください
Workbooks.Open ThisWorkbook.Path & "\取引実績", ReadOnly:=True
i = Sheets("関東地区").Cells(Rows.Count,1).End(xlUp).Row
ReDim SiresakiArray(i -1, 6) As Variant
'代入するのはA,B,C,J,L,AD列のみ
SiresakiArray() = Range("A2:??????
ActiveWindow.Close
465:デフォルトの名無しさん
20/07/16 12:20:55.35 Bld7disAr.net
いらん列を消せば?
466:デフォルトの名無しさん
20/07/16 12:29:13.40 GzNgEuWKM.net
みんなvbaどうやって勉強してるの?
しっかり参考書とか買って、じっくり?
ちなみに自分は>>458に近いスタイル
必要に迫られたらネットで検索して、ちょっと弄ってって感じ
だからいつまでたっても上達しない・・・
467:デフォルトの名無しさん
20/07/16 12:41:43.01 Bld7disAr.net
消したらrange("a2").resize(i,6)
468:デフォルトの名無しさん
20/07/16 12:45:12.35 6lIeM5zt0.net
コピペするだけで身に付くわけがない…
そのコードが何をしてるのか理解できるまで調べて自分で使っていれば自然に身に付く
>>464
いらん列消すか、いる列の2行目から地道に入れる
469:デフォルトの名無しさん
20/07/16 13:00:26.82 jRyYUilTM.net
これできるようにしてくれない?
これって自動でならない?
職場の糞どもの質問は完全に無視してる
テメーの昼休憩にずっと触ってるスマホで調べりゃ出てくるだろ
話しかけんな
470:デフォルトの名無しさん
20/07/16 13:38:13.07 PzZafv3e0.net
その人が楽するためなら何もしないな
あえて普段はどうやってるか聞いてみて嫌な顔一つしない感じならやる
471:デフォルトの名無しさん
20/07/16 14:52:54.75 2egBYvX50.net
>>464
Sub hoge1()
Dim aa As Variant
aa = Range("a1:c3,e1:f3")
'結果:a1:c3までしか入らない。なるほどね。
End Sub
Sub hoge2()
i = Cells(Rows.Count, 1).End(xlUp).Row
ReDim siresakiarray(i - 1, 6) As Variant
retsu = Array("A", "B", "C", "J", "L", "AD")
For iic = 0 To UBound(retsu)
For iir = 2 To i
siresakiarray(iir - 2, iic) = Cells(iir, retsu(iic))
Next
Next
'
Worksheets.Add
Range("a1:m999") = siresakiarray
End Sub
一つずつ入れるならザックリこんな感じのロジックで。
他の方法として新しいシートにシートコピーして列を消して配列に挿入の方が
効率いいのかも どうだろう
472:デフォルトの名無しさん (ワッチョイ dab5-t9FD)
20/07/17 00:37:14 27Ma2AbZ0.net
少し組んで改善するとまぁ評価はされるんだけど
他の人後でメンテナンスできるよな?
とか
マクロが壊れる心配ないよな?とか
テンプレートのように言われるけど知るかよ
読み取り専用で配布してるしプロシージャ弄れないようにしてあるし壊れねーっつーの
パスワードかけてないマスター版も社内サーバーに置いてあるから
いじりたきゃ学べや
あと配布した途端楽になったらその業務ばっかりやろうとするおっさん見苦しくてむかつく
配って損したわ
473:デフォルトの名無しさん
20/07/17 08:36:30.29 KHrOLv580.net
あれ?ここ日記帳だっけ?
474:デフォルトの名無しさん (ワッチョイ 7663-NRU3)
20/07/17 09:55:37 q+bHJv+q0.net
みんなの日記帳だよ
君も自由に書き込んでいいよ
475:464 (ワッチョイ 89cc-sTnA)
20/07/17 11:03:50 lcXPd8bd0.net
>>465,468,471
ありがとうございます。列を削除して取り込みます。
476:デフォルトの名無しさん
20/07/17 11:46:31.69 lcXPd8bd0.net
配列 ary(1,6)に年月日(2020/7/18)が入っていて、配列ary(1,7)には何らかの値が入っていることがあります
ary(1,6)を20日締で起算して、ary2(1,1)に"20_7"のような文字列を返す式を教えてください。
またary(1,7)に値が入っていれば翌月にずれるようにしたいです
ary(1,6)="2020/7/18"
ary(1,7)= ""
の場合ary2(1,1)="20_7"
ary(1,6)="2020/7/21"
ary(1,7)= ""
の場合ary2(1,1)="20_8"
ary(1,6)="2020/7/18"
ary(1,7)= "値"
の場合ary2(1,1)="20_8"
ary(1,6)="2020/12/20"
ary(1,7)= "1"
の場合ary2(1,1)="21_1"
477:デフォルトの名無しさん
20/07/17 12:02:43.77 0sNlDakf0.net
型はなんなの?
くそコードでもいいからひとつずつ考えて作ってみたの?
478:デフォルトの名無しさん
20/07/17 12:07:44.33 NYWT4Zhl0.net
の場合、とか言ってるんならif使えばいいだけだろ
アホなのか
479:477
20/07/17 12:46:43.52 0sNlDakf0.net
書いてみた
理解しなきゃ使えないと思うが
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
480:476
20/07/17 15:02:49.46 lcXPd8bd0.net
>>479
完成しました。ありがとうございました
dt = CDate(ary(1,6))
If Cint(Format(dt,"d")) > 20 Then '20日以降か
dt = DateAdd("m",1,dt)
End if
'空欄でなければさらに1カ月繰り上げる
If AfuriArray(cnt-1,26) <> "" Then
Else
dt = DateAdd("m",1,dt)
End If
ary(2,1) = Right(Format(dt, "yyyy"),2)&"_"& Format(dt,"m")
481:デフォルトの名無しさん (ワッチョイ dab5-t9FD)
20/07/17 21:27:08 27Ma2AbZ0.net
来年の役員報告の課の改善発表の内容に
俺のマクロで作る事が既に組み込まれてるんだが
そもそもそこまでスキルないし年上のもっと給料もらってる奴にやらせろやカスが
482:デフォルトの名無しさん
20/07/17 23:08:06.59 Bh4mGSGka.net
って言えばいいじゃん
483:デフォルトの名無しさん
20/07/18 15:07:16.47 aMbjCCwU0.net
日本語環境でmiLANG_JAPANESEを指定してもbad languageのエラーが出るのは何故?
484:デフォルトの名無しさん
20/07/18 16:11:19.98 gXGI8VY40.net
敗戦国だから
485:デフォルトの名無しさん
20/07/18 18:26:41.44 6ntZQZs40.net
sheet"s1"にFunctionで処理したary2を貼り付けたいのですが、処理前のary1が貼り付けられます
Function後のary2を貼り付けるにはどうすればよいですか?
Sub test()
Dim endrow, r As Long
endrow = Sheets("rui").Cells(Rows.Count, 1).End(xlUp).Row
ReDim ary1(endrow - 1, 6)
ary1() = Sheets("rui").Range("A2:F" & endrow).Value
Sheets("sh1").Range("A2:F" & endrow) = ary2(ary1())
End Sub
Function ary2(ary1() As Variant) As Variant()
Dim en, r As Long
en = UBound(ary1())
For r = 1 To en
ary1(r, 1) = Application.Asc(ary1(r, 1))
ary1(r, 1) = StrConv(ary1(r, 1), vbUpperCase)
ary1(r, 1) = Replace(ary1(r, 1), " ", "")
Next r
End Function
486:デフォルトの名無しさん
20/07/18 19:22:36.82 BZh66Ti/a.net
>>485
そりゃあ貴方、ary2は関数ですと自分で宣言してるもの。
しかもary1に代入してますやんかー
プログラムは命令通りに動作してるだけじゃん。
ary2の配列を準備して処理してから
そのary2の内容をシートに展開すようにプログラムしなきゃ
487:485
20/07/18 20:24:50.23 6ntZQZs40.net
>>486
ありがとうございますFuntionの使い方を誤解していましたm(_ _)m
488:デフォルトの名無しさん
20/07/18 22:33:50.97 6aEbh+KL0.net
Function大魔王
489:デフォルトの名無しさん
20/07/18 22:50:59.73 GbMN9IfrM.net
>>485
Functionの配列渡しは少しややこしい
まずは内容を単純化して正解の型を見つけた方がいいと思う
490:デフォルトの名無しさん
20/07/18 23:52:10.32 UVKbM6jvM.net
>>485
単純化した一つの正解の型
Sub test()
Dim ary() As String
ary() = fnc
MsgBox ary(1)
End Sub
Function fnc() As String()
Dim ary(1) As String
ary(1) = "a"
fnc = ary()
End Function
491:デフォルトの名無しさん
20/07/19 01:27:51.35 YQjQ9IMi0.net
配列の扱いや参照渡し以前の問題では・・・
492:デフォルトの名無しさん
20/07/19 02:51:36.02 b8b+mHAS0.net
結局、馬鹿には無理なんだよ
493:デフォルトの名無しさん
20/07/19 02:54:31.21 MOwnlnDY0.net
joinして受け渡ししてsplitで復元がシンプルでわかりやすいんじゃね?
494:デフォルトの名無しさん
20/07/19 06:42:33.41 xggXZiaY0.net
もう企業ユーザーにはOffice Script解放されてるみたいですが試された方、使用感どんなもんですか?
495:デフォルトの名無しさん
20/07/19 08:30:43.83 du465xO70.net
調査してる最中じゃねーの、あわてんな
496:デフォルトの名無しさん
20/07/19 14:09:46.91 4shkrYfWd.net
>>485
ary2の宣言部分は正しい。
でもary2の内部でary2はどうなったの?
何もしてないよね。
ary2の内部でary2はこうなりましたって書かないと宣言した時点の空の配列が返るのが当然。
つまりary2のFunctionの最後にary2=の文が必要。
497:デフォルトの名無しさん
20/07/19 14:11:26.48 4shkrYfWd.net
>>490のfnc=any()の文が正にそれ。
498:デフォルトの名無しさん
20/07/20 12:06:47.51 Dkhdkwhma.net
excelなんだから配列はセルにいれときゃいいんじゃね
499:デフォルトの名無しさん
20/07/20 18:29:09.95 3yLiDe7EM.net
速度気にしないなら
500:デフォルトの名無しさん
20/07/20 23:22:10.32 87nc/Vc+0.net
全然気にしない
501:デフォルトの名無しさん
20/07/20 23:52:01.41 3H73W2vZ0.net
配列は大量に入れるとメモリ不足になるのが嫌。
値以外のプロパティ持ってるセルの方がよっぽどメモリ喰うだろって思うけど、
仕様だから仕方がない。
502:デフォルトの名無しさん
20/07/21 07:20:28.10 s4f7WPjJd.net
メモリ不足になるほど大量に入れることなんて殆ど無い。
不足するのは別の理由だと思うが。
503:デフォルトの名無しさん
20/07/21 10:31:44.78 8QcWJiTk0.net
10万行のCSVとか配列で処理したくなるけどメモリ不足になるんで仕方なくワークシートに入れてる
504:デフォルトの名無しさん
20/07/21 11:09:54.82 GBbtTx0BM.net
VBAは過去のしがらみが多いので64bit Excelでも変な制限があってびっくりする
最近経験したのはユーザー定義型の中の配列サイズ
Type T
A(33000) As Integer
End Type
Sub S
Dim X As T
End
ってやるだけで「動的なローカル変数が多すぎます」って言われる
A(32000) As Integer
なら問題ない
505:デフォルトの名無しさん
20/07/21 11:43:12.61 uXgtcpNna.net
intの最大の32767だろうね
506:デフォルトの名無しさん
20/07/21 12:27:55.57 Z8jTNyVcM.net
オフィススクリプト試したい…
個人ユーザーにも解放してくれ…
507:デフォルトの名無しさん
20/07/21 13:35:34.68 420tjBmwd.net
csvを文字列形式のセルに取り込む時、値がない場合は""とemptyどっちにしておくべき?
508:デフォルトの名無しさん
20/07/21 14:38:12.66 zc+r4po80.net
office田中の人が顔出しでYoutubeはじめたらしいが
おじいちゃんで偉そう。
実世界なら関わりたくないタイプ。
509:デフォルトの名無しさん
20/07/21 19:47:20.41 g0ULgQg00.net
ネット上でも関わり合いになりたくないタイプだろ
510:デフォルトの名無しさん
20/07/21 21:24:07.75 fmBf+klc0.net
自分の参考になるとこだけ聞いときゃいいんじゃないの?
その他アレコレ言うのはどうかと思うぞ
511:デフォルトの名無しさん
20/07/21 22:50:12.29 nbzaQebba.net
>>503
1レコードずつシーケンシャルに処理できないの?
512:デフォルトの名無しさん
20/07/21 23:00:00.64 q3mQwKOX0.net
複数の同じ形式で入力されたブックをマージしたんですが、テキストを連結する場合に区切り文字を「|」にしました
(「|」は入力時には使用していません)
ファイルが3つ(A.xlsx,B.xlsx,C.xlsx)、それぞれのブックの値をa,b,c(テキストのみ、数値なし)、セルの値は
空白可だとすると、マージ後のあるセルの文字列は
a|| a|b| a||c |b| |b|c ||c a|b|c |||
のいづれかになりますが、このうち左端及び右端の「|」は削除、連続する「|」は「|」ひとつに統合、すべて「|」の
場合はセルを空白にするにはどうすればいいでしょうか?余分なスペースを削るTrimのようなことを任意の文字でしたい、
という趣旨です。処理後は以下のようにしたいです
a a|b a|c b b|c c a|b|c 空白のセル
一旦「|」をスペースに置換してTrim関数で余分なスペースを削ってから再度スペースを「|」に置換すればできるんですが、
もうちょっとスマートな方法があるのかなということと、意図して連続したスペースを入力していたらTrimで消えてしまうので
そういった場合に備える意味も含めていい方法があれば教えてください
513:デフォルトの名無しさん
20/07/21 23:08:39.79 aJyp0F9S0.net
Excel2019です
外部CSVをpowerqueryで取り込んで整形したのちシートに貼り付けてあるテーブルがありまして、
ファイルを立ち上げる度にこのテーブルを自動で更新させるところまではできました。
この後、更新完了後に自動的にCSVファイルを保存、終了させようと考えているのですが
更新完了のイベントがどうもわかりません(見当たりません)。
アドバイスをいただけないでしょうか
よろしくおねがいします。
514:デフォルトの名無しさん
20/07/21 23:15:37.99 rncf75Mgd.net
>>513
スマートさは知らないが正規表現で置換するとか
515:デフォルトの名無しさん
20/07/21 23:16:26.19 rncf75Mgd.net
間違えた
>>512宛
516:デフォルトの名無しさん
20/07/22 01:35:45.12 2/9nnKBr0.net
>>507
null 値は文字列型じゃなく、
型もない、または、null型だから、空文字列ではないと思う
>>513
>このテーブルを自動で更新させるところまではできました
この処理の後に、やりたい処理を書けば?
517:デフォルトの名無しさん (ワッチョイ 8b63-UE+f)
20/07/22 02:45:59 V5aeR2xw0.net
>>512
/^\|+|\|+$//
/\|+/|/
518:デフォルトの名無しさん
20/07/22 03:16:01.58 hQWVf2dN0.net
>>517
v(^^)/~
519:デフォルトの名無しさん
20/07/22 03:56:58.93 F4KuFXOj0.net
>>511
ファイル操作はセル操作以上に重いからできるだけまとめた方が速くなる
520:デフォルトの名無しさん
20/07/22 08:03:26.55 eX+7X9u9a.net
>>519
そう?
521:デフォルトの名無しさん (スッップ Sd33-Spa3)
20/07/22 08:33:57 6gIpTQrUd.net
>>503
10万を一気に配列に入れるの?
5000行ぐらいずつで処理できんの?
522:デフォルトの名無しさん
20/07/22 08:40:56.01 6gIpTQrUd.net
>>512
1.連続する|を1つにする。
2.両端の|を消す。
523:デフォルトの名無しさん
20/07/22 16:49:33.87 aRPEdkhK0.net
ExcelWebAddinっていうのを使ってWebフォームの入力を自動化しようとしていますが、ラジオボタンにチェックを入れるにはどのようなコマンドを入力すれば良いのでしょうか?
524:デフォルトの名無しさん
20/07/22 17:06:35.37 F072B1Mr0.net
1人だけマクロ作って超楽に終わらせてるのがバレたわ
改善提案で出して8000円賞やるから他の奴らにも配って共有化してくれと言われた
まぁ仕方ない
でもまぁマクロはこっそり作って自分で運用するに限るね
次にそういうのできたら発表で使ってくれだと
525:デフォルトの名無しさん
20/07/22 17:17:55.78 nFYyDION0.net
こっそり使わないと
マクロ適用できないように仕変されるよ
526:デフォルトの名無しさん
20/07/22 17:25:20.04 F072B1Mr0.net
Excelを使った業務が95%くらいの職場だから問題ない
逆に使いにくいwordを俺が改善で駆逐していってたが今回のはみんなに配りたくなかったけどまぁ仕方ないか…
在宅の日なんて他の人が半日かかるのを5分だったのに…
527:デフォルトの名無しさん
20/07/22 17:55:11.21 vvOOySn70.net
>>524
そういうのさあ、共有してあげてもいいけど、共有すると知的障害の人が仕様の異なるものに適用して失敗して文句言ってくるのが目に見えてるんだよね
だからといっていろんなケース想定してプログラミングするのはアホらしいし
528:デフォルトの名無しさん
20/07/22 18:47:51.04 urXipo8c0.net
むしろあえて自分用に最適化して「共通部分以外はできません」でもいい
529:デフォルトの名無しさん
20/07/22 19:56:15.37 nFYyDION0.net
いつのころからかマクロを忌み嫌い極限までVLOOKUPで済ませるようになった
530:デフォルトの名無しさん
20/07/22 19:58:49.72 ILXZvJ+B0.net
index/matchは使わないのw
531:デフォルトの名無しさん
20/07/22 20:03:08.77 SXXgaLVH0.net
オレオレ証明書でスムーズに使えるかと思ったら
証明書付けると逆に使えなくなったり
嫌がらせが半端じゃなかったしな
今では設定がどこにあるのかすら分からん
532:デフォルトの名無しさん
20/07/22 21:55:35.93 F4KuFXOj0.net
XPの頃はオレオレ証明書を作ってたけど、そういや今は作らなくても動いてるな
何がどう変わったのか把握してないわ
533:デフォルトの名無しさん
20/07/22 22:08:08.79 Fc7dRB3XM.net
今ならxlookupがある。
あと関係ないけど、スプシのquery関数輸入してくんないかなぁ…あんなのに特許とか無いでしょ?
534:デフォルトの名無しさん (ワッチョイ 8b63-fOmF)
20/07/23 02:13:32 Iky/Pkwz0.net
あるだろう
使われてないけど
535:デフォルトの名無しさん
20/07/23 02:31:09.52 KC5IdKq10.net
シートのコード名をマクロから変更することはできますか?
536:デフォルトの名無しさん
20/07/23 02:32:42.56 vlSabEZu0.net
できるわけないだろ
537:デフォルトの名無しさん (ワッチョイ 9909-RtpQ)
20/07/23 02:42:45 KC5IdKq10.net
まじか!
538:デフォルトの名無しさん (アウアウエー Sae3-UreN)
20/07/23 02:44:48 hi69YBSQa.net
シートのコード名ってなんだ?
539:デフォルトの名無しさん (ワッチョイ d1a2-K9d7)
20/07/23 02:46:02 vlSabEZu0.net
プロシージャ名じゃね
知らんけど
540:デフォルトの名無しさん
20/07/23 02:50:40.32 hi69YBSQa.net
設定を変更する必要はあるけど、VBproject を編集できるかもね
541:デフォルトの名無しさん
20/07/23 03:09:52.56 u9f9fzuBr.net
>>535
値取得のみ可
URLリンク(docs.microsoft.com)
542:デフォルトの名無しさん
20/07/23 03:16:02.13 togpUAVc0.net
>>526
もしかして長文資料もExcelで作っちゃう系?
それはそれで絶対やめとけよ
543:デフォルトの名無しさん
20/07/23 03:21:02.63 KC5IdKq10.net
>>541
やっぱり値取得だけなんですね。
ありがとうございました。
544:デフォルトの名無しさん
20/07/23 07:12:45.90 i+261XKMd.net
>>543
何で変えたいの?
545:デフォルトの名無しさん
20/07/23 07:16:32.96 kdPZXO8Ra.net
世の中が気に入らないから
546:デフォルトの名無しさん
20/07/23 07:23:13.06 Rh3868Eja.net
手入力でやれよ
547:デフォルトの名無しさん
20/07/23 07:35:31.90 LqjC2Hh/0.net
sendkeyでなんとか
548:デフォルトの名無しさん (ワッチョイ 4149-5TCi)
20/07/23 10:55:22 zKEjLf2X0.net
>>517
ありがとうございます、休み明けに試してみます
549:デフォルトの名無しさん
20/07/23 11:56:15.16 5yzO6ql90.net
Android版のアウトルックが操作方法また変わって、開こうとしたら削除されて、しかも削除済みのフォルダにもない。
どうしたら良いんだこれ。
メール消えてもうた。
550:デフォルトの名無しさん
20/07/23 11:58:48.40 qQzwkkHta.net
>>549
スレチ
551:デフォルトの名無しさん
20/07/23 11:59:14.78 5yzO6ql90.net
ロードに1分以上かかるのに、一見、ロードされているように見せかけるのも、問題があるように感じる。
人によっては、本文の無いメールが来たと思う人もいるだろう。
一見して高速にロードされるように見せかけるのは大した技術なんだろうけど、それ、ユーザーを騙すってことだよね?
実際にはクライアント側にデータを保存していないんだから。
552:デフォルトの名無しさん
20/07/23 12:02:50.60 5yzO6ql90.net
高速にロードされるように見せかけているがために、まだデータをダウンロードできていないことをユーザーに知らせることが出来ない。
通信中であることを示すマークを出すと、高速で無いことがバレてしまう。
ここに矛盾を抱えてる。
553:デフォルトの名無しさん
20/07/23 12:12:38.03 5yzO6ql90.net
しかもアウトルックドットコムはLinuxに慣れてる一般大衆からすると信じがたく重い。
サーバーからダウンロードしていることを隠すなら、高速なLinuxサーバーを使うべきでは?
554:デフォルトの名無しさん
20/07/23 12:24:44.89 5yzO6ql90.net
先月まで開く動作だった左にスワイプが削除の動作に代わるって、とんでもない仕様変更だよ。
555:デフォルトの名無しさん
20/07/23 12:26:28.82 5yzO6ql90.net
しかも、本文がロードされる前の時間帯では、削除済みのフォルダに入らない。
さすがにこれは仕様というよりバグなんじゃないのかな?
556:デフォルトの名無しさん
20/07/23 12:31:43.83 iL/DIdMFM.net
officeTANAKAのおじいちゃんの動画見てる人いる?
557:デフォルトの名無しさん
20/07/23 13:19:56.66 OedHhoi20.net
>>555
死ね
558:デフォルトの名無しさん
20/07/23 17:49:45.58 XAOqwh8/0.net
>>556
WEBを流し見した方が早い
同じ内容なら動画は時間がもったいない
559:デフォルトの名無しさん
20/07/23 18:24:47.13 otdPxTIka.net
おじいちゃんよりperfect human NAKATAなら見るけど
560:デフォルトの名無しさん
20/07/23 19:47:21.57 9f0mDEOaM.net
中田のは世界史/日本史やってるときはよかったが
範囲を広げすぎて見てるほうも興味ないしやってるほうも専門じゃないからおもしろくない
561:デフォルトの名無しさん
20/07/23 19:47:32.61 XyxsyJax0.net
このスレは雑談スレで質問はVBAでもビジネスsoft板スレで聞いた方がいいのかな
562:デフォルトの名無しさん
20/07/23 20:23:47.73 46il5rmY0.net
課で全員が共有する色んなExcelのファイルがあるけど
xls→たいがいマクロ組んでないからそのままマクロ組むこともある
xlsm→作成者の作ったのを見て少しだけ弄ることはある
xlsx→手を出さない
563:デフォルトの名無しさん
20/07/23 20:32:21.34 jBwCrw170.net
subってプライベートにしないと何か良くないことあるんですか?
564:デフォルトの名無しさん
20/07/23 20:39:15.52 FOonXAhZM.net
>>561
雑談してるスレ住人達の興味を引くような質問なら答えてくれるかもな
あるいは答えることで承認要求が満たされそうな質問とかマウント取れそうな質問とか
565:デフォルトの名無しさん
20/07/23 20:40:34.07 aUHqAsWY0.net
>>563
目障りだ。消えろ!
566:デフォルトの名無しさん
20/07/23 20:52:02.29 i+261XKMd.net
>>563
プロシージャを沢山作るだろ。
その中にゃちょっとお試しのSub test1()なんてのが作られる。
で、同名のプロシージャとか作ると、色々問題が出る。
プライベートならモジュールが変われば問題無し。
そもそも、面倒くさいからわりと忘れがちだが、ちゃんとスコープや型を考えて作れない人のプログラムは出来も悪いことが多い。
バグも作りがちだね。
567:デフォルトの名無しさん
20/07/23 20:53:38.12 LqjC2Hh/0.net
ちゃんとクラス作んないとな
568:デフォルトの名無しさん
20/07/23 21:08:16.92 togpUAVc0.net
クラスとかよー分からん
オブジェクト指向の言語やるといいのかな?
569:デフォルトの名無しさん
20/07/23 21:14:07.35 vlSabEZu0.net
作らなくても何とかなってきたんだろ、だったら要らないよ。
どうせクラスとかインテリセンスに項目追加するぐらいの効果しかないでしょ。
570:デフォルトの名無しさん
20/07/23 22:12:35.10 Ybp1dMGc0.net
>>562
無能自慢はやめとけ
571:デフォルトの名無しさん
20/07/23 22:29:15.13 lFUaLbQa0.net
名前はクラスだけどやってることはほぼ構造体だしな
572:デフォルトの名無しさん
20/07/23 22:41:45.26 bXbPEMrj0.net
イベントを持った動的に生成するフォームはクラスでやるしかないのでは
と、思うのだが(´・ω・`)違ったらごめんね
クラスなんか要らない構造体で十分って言ってる奴、知的好奇心足りなさすぎでは
573:デフォルトの名無しさん
20/07/23 23:49:06.55 i+261XKMd.net
>>572
VBEにメニュー追加して、メニュー押した時のイベントにはクラスが必要だね。
VBAはクラス使わなくても組める言語だけど、時々クラスがピッタリ来る場合がある。
そういう場合はクラス使った方がメンテナンス性とか後々良いことがある。
574:デフォルトの名無しさん
20/07/23 23:54:31.71 w5Kgum7s0.net
ADOとかUIAutomationとか、長くなりそうなのは面倒だからクラス。
575:デフォルトの名無しさん
20/07/24 07:38:12.69 kDVWriuI0.net
クラスの意味はわかるけど使うメリットがようわからんな
for eachで回せるくらいしか思い浮かばないんだが…
javaチックに全部クラスで作るのもなんか違う気がするし
576:デフォルトの名無しさん
20/07/24 08:16:46.34 4h264/iA0.net
またVBAでクラスの話かよ…
せめてClass_Initializeに引数持てたらな…
577:デフォルトの名無しさん
20/07/24 08:56:19.08 qHYHRNzt0.net
>>576
'Class_Initialize' イベントはサポートされなくなりました
URLリンク(docs.microsoft.com)
オブジェクト指向プログラミング (Visual Basic)
コンストラクター
URLリンク(docs.microsoft.com)
578:デフォルトの名無しさん
20/07/24 09:00:02.69 ASBY7bf4M.net
それVBAではなくて本家のVBの話だろ
579:デフォルトの名無しさん
20/07/24 10:09:40.26 4h264/iA0.net
>>577
ここまで頭悪い奴も珍しいなw
URLリンク(i.imgur.com)