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


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

Excel VBA 質問スレ Part67



1 名前:デフォルトの名無しさん [2020/06/26(金) 02:01:29.56 ID:uDfmpksE0.net]
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

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

341 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 10:53:24.76 ID:Ywdztm8P0.net]
つーか動的配列にする意味あんの?

342 名前:デフォルトの名無しさん [2020/07/08(水) 12:08:46.81 ID:lp5P2pBOM.net]
>>341
行間を読め

343 名前:デフォルトの名無しさん [2020/07/08(水) 16:22:19.40 ID:0tPjVu1x0.net]
だから最初に馬鹿はお断りしときゃいいんだよ

344 名前:301 [2020/07/08(水) 17:12:58.80 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 17:43:43.08 ID:4BPfKF9s0.net]
はい次の方

346 名前:301 [2020/07/08(水) 17:58:35.88 ID:gPwSdoJG0.net]
>>341
midiファイルというのはサイズが決まってないんですよ

347 名前:デフォルトの名無しさん [2020/07/08(水) 19:59:20.87 ID:7XVFoSLh0.net]
>>344
そりゃVBAではなく、VBですらなく
BASICの範疇だからな

基本過ぎてわざわざWEBに上げたりしない

348 名前:デフォルトの名無しさん (ワッチョイ a5ae-7/eX) [2020/07/08(水) 20:31:33 ID:cTUxRwdY0.net]
>>344
死ね

349 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 21:18:00.92 ID:J4iDAbFT0.net]
いつも馬鹿な質問ばかりで済みません。
Excelファイルをダブルクリックした際に他の人が先に開いていた場合、[読み取り専用]か、[通知]か聞かれます。
これをダイアログを出さずに最初から読専で開くようにすることは可能でしょうか?
(最初に開いた人は編集・保存できるという前提です)

外部から開く際のコントロールは簡単ですが、自分自身でコントロールするのは無理ですかね?
Workbook_Openでいろいろ試したのですが、どうもこのイベントよりも先にダイアログが発生しているようで、、、
無理だ、という回答でもいいです。ご意見ください。



350 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 21:25:31.07 ID:eeGZOJTWa.net]
>>349
https://www.shegolab.jp/entry/windows-excel-read-only

351 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 21:41:34.04 ID:eWJ0cHmK0.net]
>>349
まずちゃんと自分で調べよう
知識が伴ってないのにろくに調べもしないでは自分で解決どころか調べ方すら身に付かない

まぁ、はなから自分でやる気なんか無いのかもしれないが

352 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 21:42:45.60 ID:J4iDAbFT0.net]
>>350
情報ありがとうございます。
リンク先のものはだいたい既知の情報でした。
やっぱり自ファイルでの処理は難しそうですね。

353 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 21:46:48.09 ID:J4iDAbFT0.net]
>>351
いや、ここに書き込むときは相当調べて最後の頼みのつなで書き込んでます。
調べよう、と仰るということは、何かいい方法をご存じですか?

354 名前:蟻人間 mailto:sage [2020/07/08(水) 22:00:15.73 ID:wtc6YQgJ0.net]
>>353
ファイルの関連付けを変えて、マクロで迂回して。。。

。。。ここまで来るとウイルス判定かも(詳しい内容は自粛します)

355 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 22:05:22.90 ID:J4iDAbFT0.net]
>>354
う〜〜ん、あまり危ない橋は渡らないでおきます。

356 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 22:32:26.07 ID:R5JQxD1z0.net]
>>353
調べ方を調べてから言え

357 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 23:26:10.17 ID:J4iDAbFT0.net]
>>356
じゃあ、
>>349の繰り返しになりますが、、箇条書きにしますね。
●Excelファイルをダブルクリックした際の挙動についてです。
  ** つまり、外部から開くケースは除外です。(こちらのコントロールに苦はありません。昔から使っています)
    「外部から」とは、具体的には、、以下のケースなど。
    ・ Workbooks.Openの引数で制御する。(VBSからのOpenも含む)
    ・ ContextMenuの"新規作成"で開く。
●他の人が開いていた場合のケースです。
  ** 最初に開いている人は編集・保存ができる前提です。
    → つまり、FileAttributeを最初からReadOnlyにするケースは除外です。
●上記の際の、[読専]|[通知]を聞いてくるDialogをバイパスしたい。
  ** 「最初から読専で開きたいわけではなく、誰かが開いているときは最初から読専にしたい」
    → つまり外部から開くケースにあたらない。
● 自ファイル側で判定したい、、、Workbook_Openで試したが、このイベントより先に
  ダイアログが発生してる。

>>349とほぼ同じ内容ですが、これだけ書けばどこまでの理解で何を試したか読み取れますか?

358 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 23:40:00.14 ID:4BPfKF9s0.net]
てかそんなんできたらマルウェアの温床になるから出来ないって思っとけよ
共有化でも足りないんならあきらめろん

359 名前:デフォルトの名無しさん mailto:sage [2020/07/08(水) 23:44:27.92 ID:J4iDAbFT0.net]
>>358
よくわかりませんが、わかりました。
本件Closeで。



360 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 00:12:21.12 ID:dz7PM5ALa.net]
>>346
midiはファイルの種類じゃない

361 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 00:12:27.29 ID:ylhvfSy00.net]
ファイルが書き込めない状態になってたら読み取り専用で開けばいいだけじゃん

362 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 00:13:47.48 ID:dz7PM5ALa.net]
>>357
きもい

363 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 00:17:27.90 ID:dz7PM5ALa.net]
社会で他の人も使うファイル勝手にいじるなよ

364 名前:デフォルトの名無しさん (ワッチョイ cbdd-7n2a) mailto:sage [2020/07/09(木) 00:44:28 ID:HzjnRl+40.net]
>>363
お前には聞いてないから大丈夫だよ。
じゃ、お休み。

365 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 02:16:40.71 ID:eQo6hEQpa.net]
>>364
おまえに言ってない

366 名前:デフォルトの名無しさん (ワッチョイ a58b-GkYD) mailto:sage [2020/07/09(木) 03:10:18 ID:rHxVo6X00.net]
IE制御のついての質問。
マクロでIE制御を使ってウェブ情報を取り込んでいるんですが、連続で作動させると稀に止まることがあります。
バグった時にタスクマネージャーの詳細をみると毎回「ielowutil.exe」のプロセスだけ残ってるんですよね。
タスクマネージャーでielowutil.exe を右クリックして強制終了させると、また上手く作動するんですが、この ielowutil.exe プロセスを強制的に終了させるコードとかないですかね。

ぐぐっても英語とか読めないのでわからない。誰か助けて
https://www.mrexcel.com/board/threads/vba-automation-error-2125463506-8150002e.1079769/

367 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 03:59:15.57 ID:uBlORkna0.net]
taskkill /im ielowutil.exe
なんでもかんでもExcelでやろうとするな

368 名前:301 (ワッチョイ 2301-6wWl) [2020/07/09(木) 05:30:09 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 06:03:23.76 ID:hGjJ3XRlM.net]
ないです
次の方どうぞ



370 名前:デフォルトの名無しさん (スプッッ Sd93-56/R) mailto:sage [2020/07/09(木) 06:34:39 ID: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) [2020/07/09(木) 06:37:41 ID:C69oBRyL0.net]
>>370
ありがとうございます。 感謝します。

372 名前:デフォルトの名無しさん (スプッッ Sd93-56/R) mailto:sage [2020/07/09(木) 06:38:57 ID: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) mailto:sage [2020/07/09(木) 06:57:38 ID:150ctWWia.net]
エレガント?

374 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 07:48:49.30 ID:3iI6FAhKd.net]
>>368
そのエレガントな方法を考えるのがプログラミングなんじゃないの?
50個をコードでどうにかするなら、それをコードに書かにゃならんからエレガントにはならん。
別の所に持って良いなら別途ファイルを用意しとけば良い。
設定とか50個程度ならどっかのシートに書いとくとかでも良い。

375 名前:デフォルトの名無しさん (オッペケ Sra1-OOGl) mailto:sage [2020/07/09(木) 07:58:21 ID:8/Q//t/ar.net]
ほんとコードくれくれ君は自分で何も考えないな
あげる方も頭おかしいが

376 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 10:13:45.21 ID:tVMvaFoW0.net]
激しく同意する
ちなみにバイナリを作成するやり方で実行ファイルが作れるのでウイルシなんかも作れてしまうわけだが

377 名前:デフォルトの名無しさん (ワッチョイ cbb0-mXGD) mailto:sage [2020/07/09(木) 10:32:17 ID:VstlXiSO0.net]
モジュールから単体動作する関数を切り取って、別のモジュールにコピーしたのですが
変数の宣言がないとエラー表示されました。何度見ても宣言は正しくされているので?です。
新しく変数宣言して、置き換えると動作します。
こんなことあるのですか?

378 名前:デフォルトの名無しさん (ワッチョイ 2d7c-6wWl) mailto:sage [2020/07/09(木) 10:47:12 ID:ylhvfSy00.net]
>>377
変数?定数?

379 名前:デフォルトの名無しさん (ワッチョイ cbb0-mXGD) mailto:sage [2020/07/09(木) 10:48:52 ID:VstlXiSO0.net]
すみません。変数ではなく定数(const)でした。



380 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 10:53:22.69 ID:ylhvfSy00.net]
>>379
グローバルな定数?

381 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 11:12:09.02 ID:VstlXiSO0.net]
ローカルです。

382 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 11:19:56.91 ID:JYozEgDc0.net]
option explicitの有無は?

383 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 11:21:50.10 ID:DLLEuHaFa.net]
>>376
みんなわざわざ煙に巻いてるのに言っちゃ

384 名前:デフォルトの名無しさん (ワッチョイ cbb0-mXGD) mailto:sage [2020/07/09(木) 11:26:19 ID:VstlXiSO0.net]
>>382
option explicitはあります。

385 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 11:30:45.63 ID:ylhvfSy00.net]
>>384
稀に起こるが原因は不明
エラーになった定数の宣言行を切り取り貼り付けすればとりあえず治る

386 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 12:02:59.73 ID:JYozEgDc0.net]
コピペしたとき?
実行したとき?

387 名前:デフォルトの名無しさん (ワッチョイ cbb0-mXGD) mailto:sage [2020/07/09(木) 12:29:25 ID:VstlXiSO0.net]
>>385
問題の行をコメントアウトし、その下に同様の内容を書いたら動作しました!
稀に起きるのですか。初めて遭遇する現象です。

>>386
実行時です。

388 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 14:14:55.78 ID:VstlXiSO0.net]
>385>386
他の箇所でも同様のエラー起きましたが書き直せば動作しました。
ありがとうございました。

389 名前:デフォルトの名無しさん (ラクッペペ MMcb-0WwX) [2020/07/09(木) 18:37:42 ID:dhOVscThM.net]
>>376
バイナリだからウイルスって意味不明

マクロウイルスはソースが見えるからウイルスじゃないとでも言うつもりか?



390 名前:デフォルトの名無しさん (ワッチョイ 1b68-ucCN) mailto:sage [2020/07/09(木) 18:40:33 ID:WyUmT5e70.net]
>>389
その脳内変換が意味不明

391 名前:デフォルトの名無しさん (ラクッペペ MMcb-0WwX) [2020/07/09(木) 18:53:47 ID:dhOVscThM.net]
バイナリに謎の恐怖心を持っているんだろ?

そもそも2進数じゃなくて16進数だ

392 名前:デフォルトの名無しさん (ドコグロ MM93-65sm) mailto:sage [2020/07/09(木) 19:27:38 ID:0UE7wqUeM.net]
まあイチからバイナリ書き出しで実行ファイ作れるような人はこんな質問しないけどな

393 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 19:41:37.34 ID:WyUmT5e70.net]
>>391
その脳内変換が意味不明

394 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 19:50:25.19 ID:tq6y70T30.net]
元々の変な質問のせいでくだらない流れになった

はい次の方

395 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 20:05:26.54 ID:SKtauNRXM.net]
VBAに将来はありますか?

396 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 20:11:04.35 ID:F9SMopSBM.net]
>>395
Excelと共に生き続けるだろうね
Excelの将来と同じ

397 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 20:13:33.30 ID:K5359iyV0.net]
そういえばExcelにPython載るって話はどうなったの?

398 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 20:29:37.44 ID:Qt+epPmk0.net]
VBA
https://docs.microsoft.com/ja-jp/office/vba/api/overview/

VSTO
https://docs.microsoft.com/ja-jp/visualstudio/vsto/office-solutions-development-overview-vsto

Officeアドイン
https://docs.microsoft.com/ja-jp/office/dev/add-ins/overview/office-add-ins

399 名前:デフォルトの名無しさん (ワッチョイ 83ee-Bqa1) mailto:sage [2020/07/09(木) 21:13:12 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 21:27:01.41 ID:YMHQKg0aa.net]
>>399
CreateObjectまんまオブジェクトを創造してます

401 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 21:31:09.68 ID:36OHf5x10.net]
New使っちゃいなよ

402 名前:デフォルトの名無しさん mailto:sage [2020/07/09(木) 21:42:49.37 ID:ylhvfSy00.net]
>>399
参照設定をしていればいらない

403 名前:デフォルトの名無しさん (ワッチョイ fdce-56/R) mailto:sage [2020/07/10(金) 10:20:58 ID:O0QgyOqq0.net]
>>397
OfficeやWindowsは開発者が妄想を公式ブログで垂れ流すのが恒例行事
それを公式発表だと世間が勝手に騒いでるだけ

404 名前:デフォルトの名無しさん (ワッチョイ 83ee-Bqa1) mailto:sage [2020/07/10(金) 13:53:04 ID:3B5Gxm0d0.net]
ExcelってIE制御からedge制御できるようになった?
未だにIEが一番使い勝手いいの?

405 名前:デフォルトの名無しさん (ワッチョイ 75f1-+b0N) [2020/07/10(金) 14:38:15 ID:91NkPSzZ0.net]
ExcelってChrome制御できるようになった?

406 名前:デフォルトの名無しさん mailto:sage [2020/07/10(金) 15:03:43.58 ID:DnP9bxpW0.net]
いまはExcelがブラウザを制御するのではなくてブラウザがExcelを制御する方向性が主流
VBAはあくまでExcel内で完結する作業に限定した言語であって外部との連携作業はOfficeアドイン(実体はJavaScriptなどのスクリプト言語)や
VSTO(VisualStdioで言語はC#が中心)で行なうのがMicrosoftの方針
Pytonはよく分からんけど上手くOfficeAPIを利用すれば出来るかもしれない
概要についてのドキュメントは>>398

407 名前:デフォルトの名無しさん mailto:sage [2020/07/10(金) 15:20:21.38 ID:TbXdOMZ+r.net]
てゆかブラウザ操作するよりAPI叩いたりスクレイピングするほうが主流よね、今は
ずっと昔はExcelで入力してIEに反映させるとかあったけど、今じゃレガシーすぎる

408 名前:デフォルトの名無しさん mailto:sage [2020/07/10(金) 17:42:22.09 ID:OUgIsXw30.net]
ウチはシステムが古くてAPIなんてものに対応してないので現役だわ。

409 名前:デフォルトの名無しさん mailto:sage [2020/07/10(金) 20:17:34.10 ID:R/wZjJlU0.net]
人間も古いからちょうどいい



410 名前:デフォルトの名無しさん (スップ Sd43-Cpkm) mailto:sage [2020/07/10(金) 21:41:25 ID:rd+FvU1jd.net]
>>407
API叩くのもスクレイピングも変わらんけどな。
何でやるかの違いくらい。
まあ、Chrome制御は出来んけどな。
WebDriver使えるから出来るとも言えるか。
何処から何処迄がExcelって話。

411 名前:デフォルトの名無しさん (スップ Sd43-Cpkm) mailto:sage [2020/07/10(金) 21:42:22 ID:rd+FvU1jd.net]
>>406
VSIOは寧ろ廃れてるような気がするが。

412 名前:デフォルトの名無しさん (スップ Sd43-Cpkm) mailto:sage [2020/07/10(金) 21:42:47 ID:rd+FvU1jd.net]
>>411
VSTOな。

413 名前:デフォルトの名無しさん mailto:sage [2020/07/10(金) 22:02:00.46 ID:c4ANmjzxa.net]
>>412
VIOな

414 名前:デフォルトの名無しさん [2020/07/10(金) 22:39:50.15 ID:91NkPSzZ0.net]
>>413
それはちん毛ちんこケツの穴のことだ

415 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 00:41:33.92 ID:vLv3KjHj0.net]
あかん、モーむり
sendkeys使いすぎてるせいで
Numlockキーがオンになったりオフになったり・・・
かと言って必ずオンオフ切り替わるかというとそうでもないし
誰か絶対100%常にNumlockオンになるコード教えてくれえ

416 名前:デフォルトの名無しさん [2020/07/11(土) 01:11:16.23 ID:2VuM3xocM.net]
>>415
vbaでレジストリを操作できるから、そこに道があるかも知れない

417 名前:デフォルトの名無しさん (ワッチョイ 9bc9-ucCN) mailto:sage [2020/07/11(土) 02:13:29 ID:Eg2/WlgT0.net]
>>415
2 つ以上の SendKeys ステートメントが連続して実行されると、NumLock キーがオフになる

418 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 02:29:45.71 ID:6j9f8L+G0.net]
>>415
https://santane.jp/wp/?p=355

419 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 09:37:08.18 ID:vLv3KjHj0.net]
ありがとうございます
418の方法も試したんですが、なぜか一回目では適用されず
あと418の一番下にある、入力リストを展開するとは一体?



420 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 10:30:37.96 ID:R2Hyt8Cad.net]
>>415
Sendkeys使う奴は糞。
絶対に使っちゃいけないと言った方が事故が起こらないくらい事故が起きても不思議じゃない所で使う奴がいる。

421 名前:デフォルトの名無しさん [2020/07/11(土) 10:36:45.99 ID:QNz3pRQ00.net]
糞!ですか

422 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 10:40:32.24 ID:VwbCqtVvM.net]
何年前からのバグなんだろうねこれって

423 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 10:45:18.55 ID:R2Hyt8Cad.net]
>>421
Sendkeysは基本的にコントロール出来ない。
他アプリを操作するにはもっとコントロール出来る方法がある。

どうにも出来ない時は仕方がないが、絶対に使わないつもりで、どうにもならない時だけ使うべきだね。

424 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 10:51:22.16 ID:R2Hyt8Cad.net]
あと、危険は承知でちょろっと使う時はある。
お手軽だから。

でも、それで使うことを許容すると危険もしらず、ちょろっとで済まない所で使う奴が出てくる。

425 名前:デフォルトの名無しさん (ワッチョイ bdda-ucCN) mailto:sage [2020/07/11(土) 11:53:42 ID:vrrLv2a80.net]
Excelを頼りすぎ

426 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 11:59:27.85 ID:8xOOoQBua.net]
Excelで恋愛相談から今晩のおかずまで

427 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:25:50.11 ID:DdDKJrYh0.net]
sendkeysって手段としてしょうもなさすぎるんだよな
目的を整理すれば他にもっといいやり方があるはず

428 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 12:40:05.09 ID:pqxpyZgt0.net]
キーワードによる予測変換機能っぽいのをやろうとしたときに、
いいコード無いか探してたら使ってたなsendkeys

429 名前:デフォルトの名無しさん (ワッチョイ 75f1-+b0N) [2020/07/11(土) 13:02:10 ID:QNz3pRQ00.net]
糞!



430 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 13:57:47.97 ID:6j9f8L+G0.net]
確実にコントロールしたいならAPI
https://www.vba-ie.net/code/numlockon.php

まあAPIも万能じゃないんだけど、今回はとりあえず使える

431 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 14:02:53.27 ID:R2Hyt8Cad.net]
>>430
いやいや、確かにSendkeysよりは良いけど、何でキーボードシュミレートしたいのよ。
オブジェクトに直接キーを送るとか、オブジェクトの動作そのものを実現するとかは無しか?

432 名前:デフォルトの名無しさん mailto:sage [2020/07/11(土) 18:21:43.63 ID:2M7rjl8q0.net]
大抵のアプリは外部からの要求を受けるのはマウスとキーボードだけだから

433 名前:デフォルトの名無しさん [2020/07/11(土) 18:52:58.44 ID:6knL1xMy0.net]
あ、ちょっと失礼。
ほんの少し前、テキストボックスに入力された数式をだったか
マクロだったかをプロシージャにして実行するってなことをやってたんだが
すっかり忘れてしまいました。
どうやるんでしたでしょうか。

OS;Windows 98
Excel 97

434 名前:デフォルトの名無しさん (ワッチョイ 05da-ucCN) mailto:sage [2020/07/11(土) 19:37:48 ID:Nux+IN340.net]
>>418
そんな不具合見たことないな。
VBA限定で、VBSから使うと出ないとか?

435 名前:デフォルトの名無しさん [2020/07/11(土) 20:21:11.98 ID:UiWBFlGj0.net]
>>433
死ね

436 名前:デフォルトの名無しさん (ワッチョイ bdda-ucCN) mailto:sage [2020/07/11(土) 23:15:56 ID:vrrLv2a80.net]
>>433
そのうち思い出すから

437 名前:デフォルトの名無しさん mailto:sage [2020/07/12(日) 08:33:32.60 ID:lihdyx4V0.net]
>>433
Application.Run

438 名前:デフォルトの名無しさん (オイコラミネオ MM51-aL1r) mailto:sage [2020/07/13(月) 14:37:54 ID:1lzMxcCPM.net]
sendkeys問題解決しました
ありがとう!create object wscript.shell.sendkeysでうまいこと行けた

439 名前:デフォルトの名無しさん [2020/07/14(火) 20:11:25.31 ID:zXCz2P4SM.net]
二つのieを起動して2つ目のieにpdfを表示させてそのpdfをexecwbのsaveasで名前をつけて保存したいのですが名前をつけて保存ダイアログに一つ目のieのファイルが保存項目として表示されてしまいます。どなたかわかる方教えてください。よろしくお願いします。

これがそのコードです getIE はシェル取得ファンクションです
長すぎると書き込めないので省略しました
Set ie = CreateObject("InternetExplorer.Application")
ie.Visible = True
ie.navigate "book.impress.co.jp/appended3384/4-4.html"

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 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 02:33:14.34 ID:ZAnqbcST0.net]
Excelでやることか?

441 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 04:42:17.63 ID:IqfNcqeZ0.net]
>>439
5ch では、同じ質問のマルチポストは禁止です!

もう1つのスレの方で、やってください!

442 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 05:05:59.66 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 05:28:08.89 ID:jQlbMrrka.net]
え?VBAって二重ループ出来ないの?


エクセルVBAの二重ループについて
https://oshiete.goo.ne.jp/qa/7136635.html

444 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 07:31:51.88 ID:e63KSG0L0.net]
再計算をオフにしていても、VlookupとかIndex/Matchで参照されているセルを削除すると初回だけ滅茶苦茶重くなる
二回目からはアンドゥしようが削除しようが一瞬になる
この初回も重くならないようにしたいんですけど、初回だけどこかで再計算か何かが裏で動いてるんでしょうか?

445 名前:デフォルトの名無しさん (ブーイモ MMa1-+2iy) mailto:sage [2020/07/15(水) 07:50:23 ID:XJ3hJcChM.net]
プリンタに接続してるんじゃね?

446 名前:デフォルトの名無しさん (ワッチョイ fabc-3crd) mailto:sage [2020/07/15(水) 08:49:05 ID:vPDzR3td0.net]
記念パピコ

447 名前:デフォルトの名無しさん (アウアウエー Sa02-l+/r) [2020/07/15(水) 09:01:25 ID:yrzZGj8Ca.net]
ちゅーちゅーちゅぶりらチュパカブラー

448 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 17:34:47.36 ID:vYR4+hKTa.net]
テーブルの特定列に入力されている値から選択できるドロップダウンリストを作りたいです

【要望】
・重複なし
・(できれば)空白は除く

449 名前:デフォルトの名無しさん [2020/07/15(水) 17:39:29.54 ID:yeW9Dlh/0.net]
>>448
そうか
頑張れよ
ここは日記お断りだぞ



450 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 17:39:30.37 ID:mQ5xmDA6a.net]
>>444
キャッシュのなら場合そういう動作が正常

451 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 19:30:17.20 ID:FYD4rmMFM.net]
>>448
これがゆとり世代だ

452 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 20:33:22.18 ID:1MtMgQ04F.net]
質問してるじゃん
俺は答えられないけど

453 名前:デフォルトの名無しさん [2020/07/15(水) 21:01:28.16 ID:XJthZBxP0.net]
「作りたいです」という決意表明だろ?
そう言えば誰かが勝手に手助けしてくれると思ってるのかね。
あ、本人かよ。

454 名前:デフォルトの名無しさん [2020/07/15(水) 21:25:35.44 ID:sBHz+ETb0.net]
平成生まれと昭和生まれは少々使用する言語が違う。
同じように日本語とは言うけれど。

455 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 21:35:02.16 ID:8IhCO+GMM.net]
ゆとり世代は誰かが助けてくれて当然と思っているからな

456 名前:デフォルトの名無しさん [2020/07/15(水) 21:38:36.33 ID:sBHz+ETb0.net]
そこら辺は見た目の影響も大きいんだよな。
イケメンだったり可愛かったりすると、助けてもらえるのが当たり前で生きてる。

一方、ちょっと残念な感じだと、助けてもらえることが無く生きてる。

そこら辺の感じ方が違うのは当然なんだよね。

457 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 22:18:05.17 ID:onU8sBQ+a.net]
俺じゃない誰かが助けてくれるんじゃね

458 名前:デフォルトの名無しさん [2020/07/15(水) 22:44:18.56 ID:ovUS+LpM0.net]
覚えてものにしようと断固たる決意でマクロを完成させたけど
最初の方に組んだプロシージャを今見てもほとんど覚えてないわ
メンテナンスだけはできるようにコメントつけてあるけど
これがネットで拾い集めて基礎を学ばない相変わらずの俺のダメスタイル

459 名前:デフォルトの名無しさん mailto:sage [2020/07/15(水) 23:23:50.74 ID:xZi/KI4S0.net]
コメント残してるだけだいぶマシ



460 名前:デフォルトの名無しさん [2020/07/16(木) 00:53:10.42 ID:9MD/+BL5M.net]
個数や最終行などよく使う変数名は今後の為に統一させたほうがいいな
その時の気分でいろいろと変えると後で意味不明になる

461 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 02:52:22.64 ID:OfRWrGue0.net]
古いソースをコピペするからそうなる

462 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 09:14:27.30 ID:PzZafv3e0.net]
そして統一後気が変わって全て置換か

463 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 09:39:51.11 ID:6lIeM5zt0.net]
何の変数かコメント付けるだけで十分では

464 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 11:51:40.64 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 12:20:55.35 ID:Bld7disAr.net]
いらん列を消せば?

466 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 12:29:13.40 ID:GzNgEuWKM.net]
みんなvbaどうやって勉強してるの?
しっかり参考書とか買って、じっくり?
ちなみに自分は>>458に近いスタイル
必要に迫られたらネットで検索して、ちょっと弄ってって感じ
だからいつまでたっても上達しない・・・

467 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 12:41:43.01 ID:Bld7disAr.net]
消したらrange("a2").resize(i,6)

468 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 12:45:12.35 ID:6lIeM5zt0.net]
コピペするだけで身に付くわけがない…
そのコードが何をしてるのか理解できるまで調べて自分で使っていれば自然に身に付く

>>464
いらん列消すか、いる列の2行目から地道に入れる

469 名前:デフォルトの名無しさん [2020/07/16(木) 13:00:26.82 ID:jRyYUilTM.net]
これできるようにしてくれない?
これって自動でならない?
職場の糞どもの質問は完全に無視してる
テメーの昼休憩にずっと触ってるスマホで調べりゃ出てくるだろ
話しかけんな



470 名前:デフォルトの名無しさん mailto:sage [2020/07/16(木) 13:38:13.07 ID:PzZafv3e0.net]
その人が楽するためなら何もしないな
あえて普段はどうやってるか聞いてみて嫌な顔一つしない感じならやる

471 名前:デフォルトの名無しさん [2020/07/16(木) 14:52:54.75 ID: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) mailto:sage [2020/07/17(金) 00:37:14 ID:27Ma2AbZ0.net]
少し組んで改善するとまぁ評価はされるんだけど
他の人後でメンテナンスできるよな?
とか
マクロが壊れる心配ないよな?とか

テンプレートのように言われるけど知るかよ
読み取り専用で配布してるしプロシージャ弄れないようにしてあるし壊れねーっつーの
パスワードかけてないマスター版も社内サーバーに置いてあるから
いじりたきゃ学べや

あと配布した途端楽になったらその業務ばっかりやろうとするおっさん見苦しくてむかつく
配って損したわ

473 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 08:36:30.29 ID:KHrOLv580.net]
あれ?ここ日記帳だっけ?

474 名前:デフォルトの名無しさん (ワッチョイ 7663-NRU3) mailto:sage [2020/07/17(金) 09:55:37 ID:q+bHJv+q0.net]
みんなの日記帳だよ
君も自由に書き込んでいいよ

475 名前:464 (ワッチョイ 89cc-sTnA) mailto:sage [2020/07/17(金) 11:03:50 ID:lcXPd8bd0.net]
>>465,468,471
ありがとうございます。列を削除して取り込みます。

476 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 11:46:31.69 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 12:02:43.77 ID:0sNlDakf0.net]
型はなんなの?
くそコードでもいいからひとつずつ考えて作ってみたの?

478 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 12:07:44.33 ID:NYWT4Zhl0.net]
の場合、とか言ってるんならif使えばいいだけだろ
アホなのか

479 名前:477 mailto:sage [2020/07/17(金) 12:46:43.52 ID:0sNlDakf0.net]
書いてみた
理解しなきゃ使えないと思うが


https://i.imgur.com/3Ynd7KW.png

https://i.imgur.com/5mFzai4.png



480 名前:476 mailto:sage [2020/07/17(金) 15:02:49.46 ID: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) mailto:sage [2020/07/17(金) 21:27:08 ID:27Ma2AbZ0.net]
来年の役員報告の課の改善発表の内容に
俺のマクロで作る事が既に組み込まれてるんだが
そもそもそこまでスキルないし年上のもっと給料もらってる奴にやらせろやカスが

482 名前:デフォルトの名無しさん mailto:sage [2020/07/17(金) 23:08:06.59 ID:Bh4mGSGka.net]
って言えばいいじゃん

483 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 15:07:16.47 ID:aMbjCCwU0.net]
日本語環境でmiLANG_JAPANESEを指定してもbad languageのエラーが出るのは何故?

484 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 16:11:19.98 ID:gXGI8VY40.net]
敗戦国だから

485 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 18:26:41.44 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 19:22:36.82 ID:BZh66Ti/a.net]
>>485
そりゃあ貴方、ary2は関数ですと自分で宣言してるもの。
しかもary1に代入してますやんかー
プログラムは命令通りに動作してるだけじゃん。

ary2の配列を準備して処理してから
そのary2の内容をシートに展開すようにプログラムしなきゃ

487 名前:485 mailto:sage [2020/07/18(土) 20:24:50.23 ID:6ntZQZs40.net]
>>486
ありがとうございますFuntionの使い方を誤解していましたm(_ _)m

488 名前:デフォルトの名無しさん mailto:sage [2020/07/18(土) 22:33:50.97 ID:6aEbh+KL0.net]
Function大魔王

489 名前:デフォルトの名無しさん [2020/07/18(土) 22:50:59.73 ID:GbMN9IfrM.net]
>>485
Functionの配列渡しは少しややこしい
まずは内容を単純化して正解の型を見つけた方がいいと思う



490 名前:デフォルトの名無しさん [2020/07/18(土) 23:52:10.32 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 01:27:51.35 ID:YQjQ9IMi0.net]
配列の扱いや参照渡し以前の問題では・・・

492 名前:デフォルトの名無しさん [2020/07/19(日) 02:51:36.02 ID:b8b+mHAS0.net]
結局、馬鹿には無理なんだよ

493 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 02:54:31.21 ID:MOwnlnDY0.net]
joinして受け渡ししてsplitで復元がシンプルでわかりやすいんじゃね?

494 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 06:42:33.41 ID:xggXZiaY0.net]
もう企業ユーザーにはOffice Script解放されてるみたいですが試された方、使用感どんなもんですか?

495 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 08:30:43.83 ID:du465xO70.net]
調査してる最中じゃねーの、あわてんな

496 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 14:09:46.91 ID:4shkrYfWd.net]
>>485
ary2の宣言部分は正しい。
でもary2の内部でary2はどうなったの?
何もしてないよね。
ary2の内部でary2はこうなりましたって書かないと宣言した時点の空の配列が返るのが当然。

つまりary2のFunctionの最後にary2=の文が必要。

497 名前:デフォルトの名無しさん mailto:sage [2020/07/19(日) 14:11:26.48 ID:4shkrYfWd.net]
>>490のfnc=any()の文が正にそれ。

498 名前:デフォルトの名無しさん mailto:sage [2020/07/20(月) 12:06:47.51 ID:Dkhdkwhma.net]
excelなんだから配列はセルにいれときゃいいんじゃね

499 名前:デフォルトの名無しさん mailto:sage [2020/07/20(月) 18:29:09.95 ID:3yLiDe7EM.net]
速度気にしないなら



500 名前:デフォルトの名無しさん mailto:sage [2020/07/20(月) 23:22:10.32 ID:87nc/Vc+0.net]
全然気にしない

501 名前:デフォルトの名無しさん mailto:sage [2020/07/20(月) 23:52:01.41 ID:3H73W2vZ0.net]
配列は大量に入れるとメモリ不足になるのが嫌。
値以外のプロパティ持ってるセルの方がよっぽどメモリ喰うだろって思うけど、
仕様だから仕方がない。

502 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 07:20:28.10 ID:s4f7WPjJd.net]
メモリ不足になるほど大量に入れることなんて殆ど無い。
不足するのは別の理由だと思うが。

503 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 10:31:44.78 ID:8QcWJiTk0.net]
10万行のCSVとか配列で処理したくなるけどメモリ不足になるんで仕方なくワークシートに入れてる

504 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 11:09:54.82 ID: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 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 11:43:12.61 ID:uXgtcpNna.net]
intの最大の32767だろうね

506 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 12:27:55.57 ID:Z8jTNyVcM.net]
オフィススクリプト試したい…
個人ユーザーにも解放してくれ…

507 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 13:35:34.68 ID:420tjBmwd.net]
csvを文字列形式のセルに取り込む時、値がない場合は""とemptyどっちにしておくべき?

508 名前:デフォルトの名無しさん [2020/07/21(火) 14:38:12.66 ID:zc+r4po80.net]
office田中の人が顔出しでYoutubeはじめたらしいが
おじいちゃんで偉そう。
実世界なら関わりたくないタイプ。

509 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 19:47:20.41 ID:g0ULgQg00.net]
ネット上でも関わり合いになりたくないタイプだろ



510 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 21:24:07.75 ID:fmBf+klc0.net]
自分の参考になるとこだけ聞いときゃいいんじゃないの?
その他アレコレ言うのはどうかと思うぞ

511 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 22:50:12.29 ID:nbzaQebba.net]
>>503
1レコードずつシーケンシャルに処理できないの?

512 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 23:00:00.64 ID: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 名前:デフォルトの名無しさん [2020/07/21(火) 23:08:39.79 ID:aJyp0F9S0.net]
Excel2019です
外部CSVをpowerqueryで取り込んで整形したのちシートに貼り付けてあるテーブルがありまして、
ファイルを立ち上げる度にこのテーブルを自動で更新させるところまではできました。
この後、更新完了後に自動的にCSVファイルを保存、終了させようと考えているのですが
更新完了のイベントがどうもわかりません(見当たりません)。

アドバイスをいただけないでしょうか
よろしくおねがいします。

514 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 23:15:37.99 ID:rncf75Mgd.net]
>>513
スマートさは知らないが正規表現で置換するとか

515 名前:デフォルトの名無しさん mailto:sage [2020/07/21(火) 23:16:26.19 ID:rncf75Mgd.net]
間違えた
>>512

516 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 01:35:45.12 ID:2/9nnKBr0.net]
>>507
null 値は文字列型じゃなく、
型もない、または、null型だから、空文字列ではないと思う

>>513
>このテーブルを自動で更新させるところまではできました
この処理の後に、やりたい処理を書けば?

517 名前:デフォルトの名無しさん (ワッチョイ 8b63-UE+f) mailto:sage [2020/07/22(水) 02:45:59 ID:V5aeR2xw0.net]
>>512
/^\|+|\|+$//
/\|+/|/

518 名前:デフォルトの名無しさん [2020/07/22(水) 03:16:01.58 ID:hQWVf2dN0.net]
>>517
v(^^)/~

519 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 03:56:58.93 ID:F4KuFXOj0.net]
>>511
ファイル操作はセル操作以上に重いからできるだけまとめた方が速くなる



520 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 08:03:26.55 ID:eX+7X9u9a.net]
>>519
そう?

521 名前:デフォルトの名無しさん (スッップ Sd33-Spa3) mailto:sage [2020/07/22(水) 08:33:57 ID:6gIpTQrUd.net]
>>503
10万を一気に配列に入れるの?
5000行ぐらいずつで処理できんの?

522 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 08:40:56.01 ID:6gIpTQrUd.net]
>>512
1.連続する|を1つにする。
2.両端の|を消す。

523 名前:デフォルトの名無しさん [2020/07/22(水) 16:49:33.87 ID:aRPEdkhK0.net]
ExcelWebAddinっていうのを使ってWebフォームの入力を自動化しようとしていますが、ラジオボタンにチェックを入れるにはどのようなコマンドを入力すれば良いのでしょうか?

524 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 17:06:35.37 ID:F072B1Mr0.net]
1人だけマクロ作って超楽に終わらせてるのがバレたわ
改善提案で出して8000円賞やるから他の奴らにも配って共有化してくれと言われた
まぁ仕方ない
でもまぁマクロはこっそり作って自分で運用するに限るね
次にそういうのできたら発表で使ってくれだと

525 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 17:17:55.78 ID:nFYyDION0.net]
こっそり使わないと
マクロ適用できないように仕変されるよ

526 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 17:25:20.04 ID:F072B1Mr0.net]
Excelを使った業務が95%くらいの職場だから問題ない
逆に使いにくいwordを俺が改善で駆逐していってたが今回のはみんなに配りたくなかったけどまぁ仕方ないか…
在宅の日なんて他の人が半日かかるのを5分だったのに…

527 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 17:55:11.21 ID:vvOOySn70.net]
>>524
そういうのさあ、共有してあげてもいいけど、共有すると知的障害の人が仕様の異なるものに適用して失敗して文句言ってくるのが目に見えてるんだよね
だからといっていろんなケース想定してプログラミングするのはアホらしいし

528 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 18:47:51.04 ID:urXipo8c0.net]
むしろあえて自分用に最適化して「共通部分以外はできません」でもいい

529 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 19:56:15.37 ID:nFYyDION0.net]
いつのころからかマクロを忌み嫌い極限までVLOOKUPで済ませるようになった



530 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 19:58:49.72 ID:ILXZvJ+B0.net]
index/matchは使わないのw

531 名前:デフォルトの名無しさん [2020/07/22(水) 20:03:08.77 ID:SXXgaLVH0.net]
オレオレ証明書でスムーズに使えるかと思ったら
証明書付けると逆に使えなくなったり
嫌がらせが半端じゃなかったしな
今では設定がどこにあるのかすら分からん

532 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 21:55:35.93 ID:F4KuFXOj0.net]
XPの頃はオレオレ証明書を作ってたけど、そういや今は作らなくても動いてるな
何がどう変わったのか把握してないわ

533 名前:デフォルトの名無しさん mailto:sage [2020/07/22(水) 22:08:08.79 ID:Fc7dRB3XM.net]
今ならxlookupがある。

あと関係ないけど、スプシのquery関数輸入してくんないかなぁ…あんなのに特許とか無いでしょ?

534 名前:デフォルトの名無しさん (ワッチョイ 8b63-fOmF) mailto:sage [2020/07/23(木) 02:13:32 ID:Iky/Pkwz0.net]
あるだろう
使われてないけど

535 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 02:31:09.52 ID:KC5IdKq10.net]
シートのコード名をマクロから変更することはできますか?

536 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 02:32:42.56 ID:vlSabEZu0.net]
できるわけないだろ

537 名前:デフォルトの名無しさん (ワッチョイ 9909-RtpQ) mailto:sage [2020/07/23(木) 02:42:45 ID:KC5IdKq10.net]
まじか!

538 名前:デフォルトの名無しさん (アウアウエー Sae3-UreN) mailto:sage [2020/07/23(木) 02:44:48 ID:hi69YBSQa.net]
シートのコード名ってなんだ?

539 名前:デフォルトの名無しさん (ワッチョイ d1a2-K9d7) mailto:sage [2020/07/23(木) 02:46:02 ID:vlSabEZu0.net]
プロシージャ名じゃね
知らんけど



540 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 02:50:40.32 ID:hi69YBSQa.net]
設定を変更する必要はあるけど、VBproject を編集できるかもね

541 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 03:09:52.56 ID:u9f9fzuBr.net]
>>535
値取得のみ可
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.codename

542 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 03:16:02.13 ID:togpUAVc0.net]
>>526
もしかして長文資料もExcelで作っちゃう系?
それはそれで絶対やめとけよ

543 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 03:21:02.63 ID:KC5IdKq10.net]
>>541
やっぱり値取得だけなんですね。
ありがとうございました。

544 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 07:12:45.90 ID:i+261XKMd.net]
>>543
何で変えたいの?

545 名前:デフォルトの名無しさん [2020/07/23(木) 07:16:32.96 ID:kdPZXO8Ra.net]
世の中が気に入らないから

546 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 07:23:13.06 ID:Rh3868Eja.net]
手入力でやれよ

547 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 07:35:31.90 ID:LqjC2Hh/0.net]
sendkeyでなんとか

548 名前:デフォルトの名無しさん (ワッチョイ 4149-5TCi) mailto:sage [2020/07/23(木) 10:55:22 ID:zKEjLf2X0.net]
>>517
ありがとうございます、休み明けに試してみます

549 名前:デフォルトの名無しさん [2020/07/23(木) 11:56:15.16 ID:5yzO6ql90.net]
Android版のアウトルックが操作方法また変わって、開こうとしたら削除されて、しかも削除済みのフォルダにもない。
どうしたら良いんだこれ。
メール消えてもうた。



550 名前:デフォルトの名無しさん [2020/07/23(木) 11:58:48.40 ID:qQzwkkHta.net]
>>549
スレチ

551 名前:デフォルトの名無しさん [2020/07/23(木) 11:59:14.78 ID:5yzO6ql90.net]
ロードに1分以上かかるのに、一見、ロードされているように見せかけるのも、問題があるように感じる。
人によっては、本文の無いメールが来たと思う人もいるだろう。

一見して高速にロードされるように見せかけるのは大した技術なんだろうけど、それ、ユーザーを騙すってことだよね?
実際にはクライアント側にデータを保存していないんだから。

552 名前:デフォルトの名無しさん [2020/07/23(木) 12:02:50.60 ID:5yzO6ql90.net]
高速にロードされるように見せかけているがために、まだデータをダウンロードできていないことをユーザーに知らせることが出来ない。
通信中であることを示すマークを出すと、高速で無いことがバレてしまう。
ここに矛盾を抱えてる。

553 名前:デフォルトの名無しさん [2020/07/23(木) 12:12:38.03 ID:5yzO6ql90.net]
しかもアウトルックドットコムはLinuxに慣れてる一般大衆からすると信じがたく重い。
サーバーからダウンロードしていることを隠すなら、高速なLinuxサーバーを使うべきでは?

554 名前:デフォルトの名無しさん [2020/07/23(木) 12:24:44.89 ID:5yzO6ql90.net]
先月まで開く動作だった左にスワイプが削除の動作に代わるって、とんでもない仕様変更だよ。

555 名前:デフォルトの名無しさん [2020/07/23(木) 12:26:28.82 ID:5yzO6ql90.net]
しかも、本文がロードされる前の時間帯では、削除済みのフォルダに入らない。

さすがにこれは仕様というよりバグなんじゃないのかな?

556 名前:デフォルトの名無しさん [2020/07/23(木) 12:31:43.83 ID:iL/DIdMFM.net]
officeTANAKAのおじいちゃんの動画見てる人いる?

557 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 13:19:56.66 ID:OedHhoi20.net]
>>555
死ね

558 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 17:49:45.58 ID:XAOqwh8/0.net]
>>556
WEBを流し見した方が早い
同じ内容なら動画は時間がもったいない

559 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 18:24:47.13 ID:otdPxTIka.net]
おじいちゃんよりperfect human NAKATAなら見るけど



560 名前:デフォルトの名無しさん [2020/07/23(木) 19:47:21.57 ID:9f0mDEOaM.net]
中田のは世界史/日本史やってるときはよかったが
範囲を広げすぎて見てるほうも興味ないしやってるほうも専門じゃないからおもしろくない

561 名前:デフォルトの名無しさん [2020/07/23(木) 19:47:32.61 ID:XyxsyJax0.net]
このスレは雑談スレで質問はVBAでもビジネスsoft板スレで聞いた方がいいのかな

562 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:23:47.73 ID:46il5rmY0.net]
課で全員が共有する色んなExcelのファイルがあるけど
xls→たいがいマクロ組んでないからそのままマクロ組むこともある
xlsm→作成者の作ったのを見て少しだけ弄ることはある
xlsx→手を出さない

563 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:32:21.34 ID:jBwCrw170.net]
subってプライベートにしないと何か良くないことあるんですか?

564 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:39:15.52 ID:FOonXAhZM.net]
>>561
雑談してるスレ住人達の興味を引くような質問なら答えてくれるかもな
あるいは答えることで承認要求が満たされそうな質問とかマウント取れそうな質問とか

565 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:40:34.07 ID:aUHqAsWY0.net]
>>563
目障りだ。消えろ!

566 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:52:02.29 ID:i+261XKMd.net]
>>563
プロシージャを沢山作るだろ。
その中にゃちょっとお試しのSub test1()なんてのが作られる。
で、同名のプロシージャとか作ると、色々問題が出る。
プライベートならモジュールが変われば問題無し。

そもそも、面倒くさいからわりと忘れがちだが、ちゃんとスコープや型を考えて作れない人のプログラムは出来も悪いことが多い。
バグも作りがちだね。

567 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 20:53:38.12 ID:LqjC2Hh/0.net]
ちゃんとクラス作んないとな

568 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 21:08:16.92 ID:togpUAVc0.net]
クラスとかよー分からん
オブジェクト指向の言語やるといいのかな?

569 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 21:14:07.35 ID:vlSabEZu0.net]
作らなくても何とかなってきたんだろ、だったら要らないよ。
どうせクラスとかインテリセンスに項目追加するぐらいの効果しかないでしょ。



570 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 22:12:35.10 ID:Ybp1dMGc0.net]
>>562
無能自慢はやめとけ

571 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 22:29:15.13 ID:lFUaLbQa0.net]
名前はクラスだけどやってることはほぼ構造体だしな

572 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 22:41:45.26 ID:bXbPEMrj0.net]
イベントを持った動的に生成するフォームはクラスでやるしかないのでは
と、思うのだが(´・ω・`)違ったらごめんね
クラスなんか要らない構造体で十分って言ってる奴、知的好奇心足りなさすぎでは

573 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 23:49:06.55 ID:i+261XKMd.net]
>>572
VBEにメニュー追加して、メニュー押した時のイベントにはクラスが必要だね。

VBAはクラス使わなくても組める言語だけど、時々クラスがピッタリ来る場合がある。
そういう場合はクラス使った方がメンテナンス性とか後々良いことがある。

574 名前:デフォルトの名無しさん mailto:sage [2020/07/23(木) 23:54:31.71 ID:w5Kgum7s0.net]
ADOとかUIAutomationとか、長くなりそうなのは面倒だからクラス。

575 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 07:38:12.69 ID:kDVWriuI0.net]
クラスの意味はわかるけど使うメリットがようわからんな
for eachで回せるくらいしか思い浮かばないんだが…
javaチックに全部クラスで作るのもなんか違う気がするし

576 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 08:16:46.34 ID:4h264/iA0.net]
またVBAでクラスの話かよ…
せめてClass_Initializeに引数持てたらな…

577 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 08:56:19.08 ID:qHYHRNzt0.net]
>>576
'Class_Initialize' イベントはサポートされなくなりました
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/misc/bc42001

オブジェクト指向プログラミング (Visual Basic)
コンストラクター
https://docs.microsoft.com/ja-jp/dotnet/visual-basic/programming-guide/concepts/object-oriented-programming#constructors

578 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 09:00:02.69 ID:ASBY7bf4M.net]
それVBAではなくて本家のVBの話だろ

579 名前:デフォルトの名無しさん mailto:sage [2020/07/24(金) 10:09:40.26 ID:4h264/iA0.net]
>>577
ここまで頭悪い奴も珍しいなw
https://i.imgur.com/xv7gdOM.jpg








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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