Excel VBA 質問スレ Part67

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 33da-3+hg)
垢版 |
2020/06/26(金) 02:01:29.56ID:uDfmpksE0
!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
2020/07/21(火) 10:31:44.78ID:8QcWJiTk0
10万行のCSVとか配列で処理したくなるけどメモリ不足になるんで仕方なくワークシートに入れてる
2020/07/21(火) 11:09:54.82ID:GBbtTx0BM
VBAは過去のしがらみが多いので64bit Excelでも変な制限があってびっくりする
最近経験したのはユーザー定義型の中の配列サイズ
Type T
A(33000) As Integer
End Type
Sub S
Dim X As T
End
ってやるだけで「動的なローカル変数が多すぎます」って言われる
A(32000) As Integer
なら問題ない
2020/07/21(火) 11:43:12.61ID:uXgtcpNna
intの最大の32767だろうね
2020/07/21(火) 12:27:55.57ID:Z8jTNyVcM
オフィススクリプト試したい…
個人ユーザーにも解放してくれ…
2020/07/21(火) 13:35:34.68ID:420tjBmwd
csvを文字列形式のセルに取り込む時、値がない場合は""とemptyどっちにしておくべき?
508デフォルトの名無しさん (ワッチョイ 7df1-+aB8)
垢版 |
2020/07/21(火) 14:38:12.66ID:zc+r4po80
office田中の人が顔出しでYoutubeはじめたらしいが
おじいちゃんで偉そう。
実世界なら関わりたくないタイプ。
2020/07/21(火) 19:47:20.41ID:g0ULgQg00
ネット上でも関わり合いになりたくないタイプだろ
2020/07/21(火) 21:24:07.75ID:fmBf+klc0
自分の参考になるとこだけ聞いときゃいいんじゃないの?
その他アレコレ言うのはどうかと思うぞ
2020/07/21(火) 22:50:12.29ID:nbzaQebba
>>503
1レコードずつシーケンシャルに処理できないの?
2020/07/21(火) 23:00:00.64ID:q3mQwKOX0
複数の同じ形式で入力されたブックをマージしたんですが、テキストを連結する場合に区切り文字を「|」にしました
(「|」は入力時には使用していません)
ファイルが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デフォルトの名無しさん (ワッチョイ ee8c-sTnA)
垢版 |
2020/07/21(火) 23:08:39.79ID:aJyp0F9S0
Excel2019です
外部CSVをpowerqueryで取り込んで整形したのちシートに貼り付けてあるテーブルがありまして、
ファイルを立ち上げる度にこのテーブルを自動で更新させるところまではできました。
この後、更新完了後に自動的にCSVファイルを保存、終了させようと考えているのですが
更新完了のイベントがどうもわかりません(見当たりません)。

アドバイスをいただけないでしょうか
よろしくおねがいします。
2020/07/21(火) 23:15:37.99ID:rncf75Mgd
>>513
スマートさは知らないが正規表現で置換するとか
2020/07/21(火) 23:16:26.19ID:rncf75Mgd
間違えた
>>512
2020/07/22(水) 01:35:45.12ID:2/9nnKBr0
>>507
null 値は文字列型じゃなく、
型もない、または、null型だから、空文字列ではないと思う

>>513
>このテーブルを自動で更新させるところまではできました
この処理の後に、やりたい処理を書けば?
2020/07/22(水) 02:45:59.48ID:V5aeR2xw0
>>512
/^\|+|\|+$//
/\|+/|/
518デフォルトの名無しさん (ワッチョイ 29f1-4Yr4)
垢版 |
2020/07/22(水) 03:16:01.58ID:hQWVf2dN0
>>517
v(^^)/~
2020/07/22(水) 03:56:58.93ID:F4KuFXOj0
>>511
ファイル操作はセル操作以上に重いからできるだけまとめた方が速くなる
2020/07/22(水) 08:03:26.55ID:eX+7X9u9a
>>519
そう?
2020/07/22(水) 08:33:57.99ID:6gIpTQrUd
>>503
10万を一気に配列に入れるの?
5000行ぐらいずつで処理できんの?
2020/07/22(水) 08:40:56.01ID:6gIpTQrUd
>>512
1.連続する|を1つにする。
2.両端の|を消す。
523デフォルトの名無しさん (ワッチョイ 0963-VaRO)
垢版 |
2020/07/22(水) 16:49:33.87ID:aRPEdkhK0
ExcelWebAddinっていうのを使ってWebフォームの入力を自動化しようとしていますが、ラジオボタンにチェックを入れるにはどのようなコマンドを入力すれば良いのでしょうか?
2020/07/22(水) 17:06:35.37ID:F072B1Mr0
1人だけマクロ作って超楽に終わらせてるのがバレたわ
改善提案で出して8000円賞やるから他の奴らにも配って共有化してくれと言われた
まぁ仕方ない
でもまぁマクロはこっそり作って自分で運用するに限るね
次にそういうのできたら発表で使ってくれだと
2020/07/22(水) 17:17:55.78ID:nFYyDION0
こっそり使わないと
マクロ適用できないように仕変されるよ
2020/07/22(水) 17:25:20.04ID:F072B1Mr0
Excelを使った業務が95%くらいの職場だから問題ない
逆に使いにくいwordを俺が改善で駆逐していってたが今回のはみんなに配りたくなかったけどまぁ仕方ないか…
在宅の日なんて他の人が半日かかるのを5分だったのに…
2020/07/22(水) 17:55:11.21ID:vvOOySn70
>>524
そういうのさあ、共有してあげてもいいけど、共有すると知的障害の人が仕様の異なるものに適用して失敗して文句言ってくるのが目に見えてるんだよね
だからといっていろんなケース想定してプログラミングするのはアホらしいし
2020/07/22(水) 18:47:51.04ID:urXipo8c0
むしろあえて自分用に最適化して「共通部分以外はできません」でもいい
2020/07/22(水) 19:56:15.37ID:nFYyDION0
いつのころからかマクロを忌み嫌い極限までVLOOKUPで済ませるようになった
2020/07/22(水) 19:58:49.72ID:ILXZvJ+B0
index/matchは使わないのw
531デフォルトの名無しさん (ワッチョイ d1e6-l24t)
垢版 |
2020/07/22(水) 20:03:08.77ID:SXXgaLVH0
オレオレ証明書でスムーズに使えるかと思ったら
証明書付けると逆に使えなくなったり
嫌がらせが半端じゃなかったしな
今では設定がどこにあるのかすら分からん
2020/07/22(水) 21:55:35.93ID:F4KuFXOj0
XPの頃はオレオレ証明書を作ってたけど、そういや今は作らなくても動いてるな
何がどう変わったのか把握してないわ
2020/07/22(水) 22:08:08.79ID:Fc7dRB3XM
今ならxlookupがある。

あと関係ないけど、スプシのquery関数輸入してくんないかなぁ…あんなのに特許とか無いでしょ?
2020/07/23(木) 02:13:32.09ID:Iky/Pkwz0
あるだろう
使われてないけど
2020/07/23(木) 02:31:09.52ID:KC5IdKq10
シートのコード名をマクロから変更することはできますか?
2020/07/23(木) 02:32:42.56ID:vlSabEZu0
できるわけないだろ
2020/07/23(木) 02:42:45.18ID:KC5IdKq10
まじか!
2020/07/23(木) 02:44:48.35ID:hi69YBSQa
シートのコード名ってなんだ?
2020/07/23(木) 02:46:02.22ID:vlSabEZu0
プロシージャ名じゃね
知らんけど
2020/07/23(木) 02:50:40.32ID:hi69YBSQa
設定を変更する必要はあるけど、VBproject を編集できるかもね
2020/07/23(木) 03:09:52.56ID:u9f9fzuBr
>>535
値取得のみ可
https://docs.microsoft.com/ja-jp/office/vba/api/excel.worksheet.codename
2020/07/23(木) 03:16:02.13ID:togpUAVc0
>>526
もしかして長文資料もExcelで作っちゃう系?
それはそれで絶対やめとけよ
2020/07/23(木) 03:21:02.63ID:KC5IdKq10
>>541
やっぱり値取得だけなんですね。
ありがとうございました。
2020/07/23(木) 07:12:45.90ID:i+261XKMd
>>543
何で変えたいの?
545デフォルトの名無しさん (アウアウエー Sae3-Ar/h)
垢版 |
2020/07/23(木) 07:16:32.96ID:kdPZXO8Ra
世の中が気に入らないから
2020/07/23(木) 07:23:13.06ID:Rh3868Eja
手入力でやれよ
2020/07/23(木) 07:35:31.90ID:LqjC2Hh/0
sendkeyでなんとか
2020/07/23(木) 10:55:22.67ID:zKEjLf2X0
>>517
ありがとうございます、休み明けに試してみます
549デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 11:56:15.16ID:5yzO6ql90
Android版のアウトルックが操作方法また変わって、開こうとしたら削除されて、しかも削除済みのフォルダにもない。
どうしたら良いんだこれ。
メール消えてもうた。
550デフォルトの名無しさん (アウアウカー Sa15-Ar/h)
垢版 |
2020/07/23(木) 11:58:48.40ID:qQzwkkHta
>>549
スレチ
551デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 11:59:14.78ID:5yzO6ql90
ロードに1分以上かかるのに、一見、ロードされているように見せかけるのも、問題があるように感じる。
人によっては、本文の無いメールが来たと思う人もいるだろう。

一見して高速にロードされるように見せかけるのは大した技術なんだろうけど、それ、ユーザーを騙すってことだよね?
実際にはクライアント側にデータを保存していないんだから。
552デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 12:02:50.60ID:5yzO6ql90
高速にロードされるように見せかけているがために、まだデータをダウンロードできていないことをユーザーに知らせることが出来ない。
通信中であることを示すマークを出すと、高速で無いことがバレてしまう。
ここに矛盾を抱えてる。
553デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 12:12:38.03ID:5yzO6ql90
しかもアウトルックドットコムはLinuxに慣れてる一般大衆からすると信じがたく重い。
サーバーからダウンロードしていることを隠すなら、高速なLinuxサーバーを使うべきでは?
554デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 12:24:44.89ID:5yzO6ql90
先月まで開く動作だった左にスワイプが削除の動作に代わるって、とんでもない仕様変更だよ。
555デフォルトの名無しさん (ワッチョイ 4901-It4W)
垢版 |
2020/07/23(木) 12:26:28.82ID:5yzO6ql90
しかも、本文がロードされる前の時間帯では、削除済みのフォルダに入らない。

さすがにこれは仕様というよりバグなんじゃないのかな?
556デフォルトの名無しさん (ブーイモ MMcb-4Yr4)
垢版 |
2020/07/23(木) 12:31:43.83ID:iL/DIdMFM
officeTANAKAのおじいちゃんの動画見てる人いる?
2020/07/23(木) 13:19:56.66ID:OedHhoi20
>>555
死ね
2020/07/23(木) 17:49:45.58ID:XAOqwh8/0
>>556
WEBを流し見した方が早い
同じ内容なら動画は時間がもったいない
2020/07/23(木) 18:24:47.13ID:otdPxTIka
おじいちゃんよりperfect human NAKATAなら見るけど
560デフォルトの名無しさん (ブーイモ MM4d-4Yr4)
垢版 |
2020/07/23(木) 19:47:21.57ID:9f0mDEOaM
中田のは世界史/日本史やってるときはよかったが
範囲を広げすぎて見てるほうも興味ないしやってるほうも専門じゃないからおもしろくない
561デフォルトの名無しさん (ワッチョイ fb8c-keh3)
垢版 |
2020/07/23(木) 19:47:32.61ID:XyxsyJax0
このスレは雑談スレで質問はVBAでもビジネスsoft板スレで聞いた方がいいのかな
2020/07/23(木) 20:23:47.73ID:46il5rmY0
課で全員が共有する色んなExcelのファイルがあるけど
xls→たいがいマクロ組んでないからそのままマクロ組むこともある
xlsm→作成者の作ったのを見て少しだけ弄ることはある
xlsx→手を出さない
2020/07/23(木) 20:32:21.34ID:jBwCrw170
subってプライベートにしないと何か良くないことあるんですか?
2020/07/23(木) 20:39:15.52ID:FOonXAhZM
>>561
雑談してるスレ住人達の興味を引くような質問なら答えてくれるかもな
あるいは答えることで承認要求が満たされそうな質問とかマウント取れそうな質問とか
2020/07/23(木) 20:40:34.07ID:aUHqAsWY0
>>563
目障りだ。消えろ!
2020/07/23(木) 20:52:02.29ID:i+261XKMd
>>563
プロシージャを沢山作るだろ。
その中にゃちょっとお試しのSub test1()なんてのが作られる。
で、同名のプロシージャとか作ると、色々問題が出る。
プライベートならモジュールが変われば問題無し。

そもそも、面倒くさいからわりと忘れがちだが、ちゃんとスコープや型を考えて作れない人のプログラムは出来も悪いことが多い。
バグも作りがちだね。
2020/07/23(木) 20:53:38.12ID:LqjC2Hh/0
ちゃんとクラス作んないとな
2020/07/23(木) 21:08:16.92ID:togpUAVc0
クラスとかよー分からん
オブジェクト指向の言語やるといいのかな?
2020/07/23(木) 21:14:07.35ID:vlSabEZu0
作らなくても何とかなってきたんだろ、だったら要らないよ。
どうせクラスとかインテリセンスに項目追加するぐらいの効果しかないでしょ。
2020/07/23(木) 22:12:35.10ID:Ybp1dMGc0
>>562
無能自慢はやめとけ
2020/07/23(木) 22:29:15.13ID:lFUaLbQa0
名前はクラスだけどやってることはほぼ構造体だしな
2020/07/23(木) 22:41:45.26ID:bXbPEMrj0
イベントを持った動的に生成するフォームはクラスでやるしかないのでは
と、思うのだが(´・ω・`)違ったらごめんね
クラスなんか要らない構造体で十分って言ってる奴、知的好奇心足りなさすぎでは
2020/07/23(木) 23:49:06.55ID:i+261XKMd
>>572
VBEにメニュー追加して、メニュー押した時のイベントにはクラスが必要だね。

VBAはクラス使わなくても組める言語だけど、時々クラスがピッタリ来る場合がある。
そういう場合はクラス使った方がメンテナンス性とか後々良いことがある。
2020/07/23(木) 23:54:31.71ID:w5Kgum7s0
ADOとかUIAutomationとか、長くなりそうなのは面倒だからクラス。
2020/07/24(金) 07:38:12.69ID:kDVWriuI0
クラスの意味はわかるけど使うメリットがようわからんな
for eachで回せるくらいしか思い浮かばないんだが…
javaチックに全部クラスで作るのもなんか違う気がするし
2020/07/24(金) 08:16:46.34ID:4h264/iA0
またVBAでクラスの話かよ…
せめてClass_Initializeに引数持てたらな…
2020/07/24(金) 08:56:19.08ID:qHYHRNzt0
>>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
2020/07/24(金) 09:00:02.69ID:ASBY7bf4M
それVBAではなくて本家のVBの話だろ
2020/07/24(金) 10:09:40.26ID:4h264/iA0
>>577
ここまで頭悪い奴も珍しいなw
https://i.imgur.com/xv7gdOM.jpg
2020/07/24(金) 13:38:33.26ID:w9fToQCu0
わざわざ画像にしなくてもURLに書いてるし
2020/07/24(金) 13:53:31.22ID:JpqyONWeM
VBAもVBも黒歴史になりつつある点では似たり寄ったりだけどね
Office ScriptsではTypeScriptが使われるようになるんだっけ?
2020/07/24(金) 15:25:00.32ID:9v9Epd9J0
CodeLabとOffice Scriptsの違いが分からん
2020/07/25(土) 00:45:14.24ID:JvyY8SZI0
クラスのメソッドで例外が起きた時、メソッド内の発生場所で止まるようにする方法はありませんか?
標準モジュール内のメソッドを呼んだ位置まで巻き戻って停止してしまい、デバッグしづらいです。
2020/07/25(土) 03:30:34.71ID:XNRsY3fo0
止まったら何もできない
2020/07/25(土) 03:47:33.86ID:vIjhxGJs0
>>583
デバッガでステップインすれば
https://docs.python.org/ja/3/library/pdb.html
2020/07/25(土) 03:48:10.37ID:vIjhxGJs0
ごめんpythonのスレと間違えた
587デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
垢版 |
2020/07/25(土) 03:52:26.30ID:ajAv/KNZ0
こことPythonのスレはどうしようもない馬鹿が来るよな
2020/07/25(土) 10:50:18.42ID:JW+blTJS0
>>584
説明不足だったかもしれません。

標準モジュール内で例外が投げられると、発生した行の色が変わって停止します。
これをクラスのメソッド定義の中でもできるようにしたいんです。
2020/07/25(土) 11:09:06.42ID:lCi24Eq2a
オプション→全般のエラートラップをクラスモジュールで中断にするとよい。
2020/07/25(土) 11:33:18.16ID:JW+blTJS0
>>589
ありがとうございます
2020/07/25(土) 11:36:14.62ID:JW+blTJS0
シェルスクリプトのことをシェルってゆうなってあるけど、どう違うの?
2020/07/25(土) 11:36:22.19ID:JW+blTJS0
誤爆
593デフォルトの名無しさん (ワッチョイ fb8c-keh3)
垢版 |
2020/07/26(日) 00:01:52.46ID:YUJGnmE80
シェルで使うスクリプト
2020/07/26(日) 00:13:48.38ID:PahVuP8ha
Excelで使うVBAに関する質問スレッド
595デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
垢版 |
2020/07/26(日) 00:58:59.92ID:5SabrGL+0
馬鹿は勝手な略語を使う法則
2020/07/26(日) 01:28:13.97ID:PahVuP8ha
「Excel」とはマイクロソフト社が販売する代表的なコンピューター上で動作する表計算アプリケーションソフトウェアのひとつです。

「VBA」とは
(コンピュータ用語)で
読み方は【ぶいびーえー】と読みます。
VisualBasic for Applications【ぶぃじゅある べいしっく ふぉー あぷりけいしょん】の略です。
マイクロソフト社製の各Office製品に附属しています。
それぞれのアプリケーション(Excel、Accessなど)の操作に特化したVisualBasicの亜種です。

「質問」とは質疑問い合わせの事です。

「スレ」とはスレッドの略で掲示板のプロセス単位の事です。

「part」とは・・
2020/07/26(日) 01:30:01.34ID:uKzXRGWLM
>>596
「質問」とは質問だろ
2020/07/26(日) 01:38:30.83ID:PahVuP8ha
【パート】【パーツ】
部分、全体の一部、断片
小説の節、戯曲・詩などの部,編,巻,(連載物の)回や
楽器演奏者の役割、時間労働者、機械の部品
などがあります。
2020/07/26(日) 01:52:49.28ID:sW/RrXzf0
死得るスクリプトを見たら最後
600デフォルトの名無しさん (ワッチョイ 1301-8Xcr)
垢版 |
2020/07/26(日) 11:21:54.14ID:Jda+4IKu0
Cells(1, 1)に、5Fという文字が書かれてます。
Cells(1, 1)から、Dim b As Byte と宣言されたbにバイナリデータの5Fを代入するにはどうすればよいでしょうか?
↓を実行すると、b = Cells(1, 1).Valueのところで、「型が一致しません」となります。

Sub test()
Dim b As Byte
b = Cells(1, 1).Value
Debug.Print b
End Sub
2020/07/26(日) 11:27:03.08ID:DWe9vbm70
>>600
b = Val("&H" & Cells(1, 1).Text)
602デフォルトの名無しさん (ワッチョイ 8b8e-VaRO)
垢版 |
2020/07/26(日) 11:28:35.60ID:5SabrGL+0
また馬鹿が戻ってきたか
603600 (ワッチョイ 1301-8Xcr)
垢版 |
2020/07/26(日) 11:31:04.04ID:Jda+4IKu0
>>601
おお、ありがとうございます。 出来ました!
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況