Excel VBA 質問スレ Part69

■ このスレッドは過去ログ倉庫に格納されています
2020/12/13(日) 00:22:23.67ID:Fd224klc0
!extend:checked:vvvvv:1000:512
↑同じ内容を2行貼り付ける

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

※前スレ
Excel VBA 質問スレ Part68
https://mevius.5ch.net/test/read.cgi/tech/1598756127/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
415デフォルトの名無しさん (スフッ Sd0a-Dh1+)
垢版 |
2021/01/30(土) 02:48:37.26ID:qXiZMF+3d
>>392
これ面白そうだったから調べてみた。
s = worksheetfunction.clean(s)
でいけるっぽい
2021/01/30(土) 07:14:33.38ID:1M+OYc940
VBAがそのうち廃止されると噂聞くけど無くなったらExcelじゃなくて良いね
キングとかジャストの安い互換ソフトで十分
それとPython
2021/01/30(土) 07:28:22.98ID:O0XirISQ0
そんなのきいたこともない
2021/01/30(土) 07:31:09.77ID:inFBwlEk0
上にExcel使いこなしてる奴少ないとあるが、事務歴長いおばちゃんとか操作長けてるイメージあるけどどうなの??
2021/01/30(土) 07:45:37.30ID:JU3c6HAP0
>>397-398
> vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも
それでいいと思う
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/miscellaneous-constants
2021/01/30(土) 08:19:24.57ID:5ChT/CTU0
>>415
MS様の関数を使うのが一番きれいか
2021/01/30(土) 08:27:30.21ID:jJ/MoYJX0
>>418
テンキーだけ速い。
2021/01/30(土) 08:28:40.37ID:fCdLLOZj0
ワークシートの関数とか基本的なものしか知らないな
知ってると便利そうね
2021/01/30(土) 08:43:21.65ID:BrDW2qLKd
>>418
小企業で事務が2人ぐらいのとこだと、速いけどたいがい変な自己流
いわゆるExcel方眼紙を素早く作って定型文書を作ってしまうとかそんなイメージ
もちろんよく勉強してる人もいるが
2021/01/30(土) 08:54:12.58ID:BrDW2qLKd
[A2] = [Clean(A1)]
2021/01/30(土) 09:29:14.83ID:inFBwlEk0
テンキー速いのは良いね
電卓も得意そうだし
方眼紙はアカンど、あれ考えた人天才かファホどちらかだな
そういうおば様が引き継ぎにくいシートを大量生産しとるんだねうちみたいに
2021/01/30(土) 10:10:18.97ID:1M+OYc940
VBAはいつまで使えるんだろう?
あと15年は大丈夫かね
2021/01/30(土) 10:35:24.24ID:rbovmPt/a
おー、ありがとございまーす‼︎
2021/01/30(土) 10:37:11.90ID:rbovmPt/a
>>419
おー、ありがとうございます‼︎
429デフォルトの名無しさん (ワッチョイ 6d63-IZeX)
垢版 |
2021/01/30(土) 10:41:58.65ID:b7Gs8Wa80
>>408
です

>>411
>>414
ありがとうございます、おっしゃる通り数字扱いになっているのだと思います。
>>411さんの方法でやってみます
2021/01/30(土) 11:30:40.53ID:1M+OYc940
最近、Excel + Pythonとか耳にするけどVBAより何が良いんだろー?
2021/01/30(土) 11:46:57.12ID:O0XirISQ0
ExcelVBAのひどさは文法よりライブラリのひどさにある
言語だけ変えてもあんまり解決しない

丸々置き換えた外部ライブラリならもっと楽にプログラムできるかもしれない
2021/01/30(土) 12:27:45.49ID:1M+OYc940
そうなのかー
2021/01/30(土) 13:08:59.54ID:Jfm3X56+M
Pythonみたいな外部環境使う時は、エクセルを操作って言うより作成する時が多そう
入出力ともにエクセルならVBAの方が手っ取り早いでしょ
2021/01/30(土) 13:24:52.13ID:Au3KeWLZM
というかVBA使ってるのは他に開発ツールが無いからなんだよ
Pythonインストールできる環境ならそもそもVBAなんか使ってない
2021/01/30(土) 13:37:40.94ID:fCdLLOZj0
最近VBA描けるようになって嬉しいけどここ見てると終わってる言語みたいだな...
2021/01/30(土) 13:44:55.44ID:inFBwlEk0
古い言語だからでは?
昭和の定年ジジババがどや顔で昔からプログラミングやっていたと若者にマウント取ってくるのは大抵VBAが大半
2021/01/30(土) 13:51:30.45ID:Jfm3X56+M
終わってる言語だけど、代わりに仕様変更がない安心感はある

諸悪の根源は仕事の効率化って名目でVBA押し売りするサイトやら講師やらだな
はよくたばれ
2021/01/30(土) 14:05:31.86ID:xS3gwMFJ0
今VBA押してるか?
Pythonばかりステマされてる気がする
2021/01/30(土) 14:46:55.21ID:Au3KeWLZM
>>435
今でも使われてるしVBAしか開発環境のない職場も多いし、
いつも手作業で気合いで乗り切るって人より遥かにマシだから引き続き学習進めていいと思うよ
ただ余裕があれば自宅でPythonとかHTML+JavaScript辺り触っとくといいかも
2021/01/30(土) 16:29:08.79ID:Jfm3X56+M
Vbaしかないってどんな状況だよ
2021/01/30(土) 16:33:11.52ID:rDRgl3OZ0
よくあるだろ。
オフィス系を主体に普通に手作業メインで事務やってるとこは。
2021/01/30(土) 16:33:53.70ID:c0t4Oketd
>>434
Pythonインストールできる会社って少ないの?
なにか引っかかるの?
2021/01/30(土) 16:36:47.91ID:rDRgl3OZ0
余計なものはインストールしちゃいけないことになってる
2021/01/30(土) 16:59:35.87ID:SAK/nUhP0
良かれと思って勝手にやって怒られても嫌だしな
2021/01/30(土) 17:00:42.77ID:KmRaLG0X0
規約で使っていいツールが決まってる
2021/01/30(土) 17:06:41.65ID:Jfm3X56+M
何で勝手にインストールするのが前提なんだよ
上に相談すればいいじゃん
それすら出来ない融通の効かない会社なら、そもそもマクロなんか絶対許さないだろ
2021/01/30(土) 17:13:45.33ID:Rr8OfpXod
ウチの会社は全く融通きかない
Alt+F11で上司の上司から呼び出し食らったの思い出しましたわ
2021/01/30(土) 17:17:25.24ID:rDRgl3OZ0
>>446
上に相談で通るって、どんだけ小さい企業を想定してるんだよと
2021/01/30(土) 17:24:56.08ID:SAK/nUhP0
>>446
お前の知ってる会社が世の中のすべてじゃないってことだよ
2021/01/30(土) 17:24:58.39ID:Jfm3X56+M
上に相談するのに企業規模関係なくね?
2021/01/30(土) 17:30:12.43ID:Jfm3X56+M
まぁどうせ無理だろって思い込みでやってるから、
そういう状況なんだろうな

行動しないかやっても中途半端なくせに上司や会社への愚痴は一人前
2021/01/30(土) 17:43:22.21ID:SAK/nUhP0
そうやって思い込みで批判してるお前も思い込み仲間だな
2021/01/30(土) 17:47:12.97ID:6QDP6TPLH
相談するかどうかには規模は関係ない
許可されるかどうかも規模は関係ないかな
相談のしやすさだけは違うかも
454デフォルトの名無しさん (ブーイモ MM8e-PvQU)
垢版 |
2021/01/30(土) 18:58:14.37ID:vCh93ej0M
会社PCでPython+Excelなんて非現実的すぎるよな
相談しても「余計なことしなくていい」で終わり
でもExcelは最初から入ってるからVBAなら無問題
未だに使われてるのはそれが最大の理由
一時期「ExcelでPython使えるようになる」みたいな話があって期待してたけど立ち消えで残念
2021/01/30(土) 19:17:07.76ID:inFBwlEk0
そもそもExcel使いの中でのVB人口が少ないわな
職場によっては白い目で見られる事あるみたいだし。。。
2021/01/30(土) 19:23:25.71ID:rDRgl3OZ0
>>454
うちと同じ
厳格で神経質な大企業だわ
2021/01/30(土) 19:57:40.31ID:O0XirISQ0
python入ってたらpip installぐらいさせてくれるだろ
2021/01/30(土) 20:20:54.08ID:JU3c6HAP0
>>434
Excel関係ないならPowerShellでいいだろ
気合いるけどC#, VB.netだって使えるし
2021/01/30(土) 20:25:06.96ID:VxE/916e0
>>454
えっ、ExcelにPython搭載の話は無くなったの?
2021/01/30(土) 20:38:13.29ID:j+igCUSpM
>>459
ExcelにPythonが搭載?その後
https://qiita.com/yniji/items/b38bc312e860027108ac
2021/01/30(土) 21:00:39.22ID:aByJMjeF0
>>458
PowerShellは軽く調べたことあるけどそんなに便利なの?
C#とかVB.netってのは追加インストールなしでできる?

今のところうちの会社で出来そうな言語は↓

・VBA(Office)
・VBS(WSH)
・Jscript(WSH)
・JavaScript(webブラウザ)
・PowerShell
2021/01/30(土) 21:22:07.64ID:xS3gwMFJ0
VBAで簡単なアプリ開発ってできるの?
tefuくんの体脂肪測定器みたいな
2021/01/30(土) 21:22:48.91ID:O0XirISQ0
いくら便利でも所詮はシェルだし
体系がわかりやすくなっても
いったん古い体系になじんでたら覚える手間増えるだけだし
劇的に安全になったり間違いが減ったり作業が減るわけじゃない
今から入る人以外やる人いるのか?
2021/01/30(土) 21:23:28.18ID:aByJMjeF0
VBAは極めれば当然事務系のシステムはもちろんアクションゲームやシューディングゲームも作れる
開発効率は知らん
2021/01/30(土) 21:35:23.25ID:xS3gwMFJ0
>>464
簡単なアプリ作るのに初心者から何年ぐらいかかるな
2021/01/30(土) 21:40:45.18ID:aByJMjeF0
>>465
ジャンルは?
2021/01/30(土) 21:41:39.22ID:aByJMjeF0
ああ、上に書いてあるようなやつか
人によるけど半年〜1年くらいじゃね?
2021/01/30(土) 21:59:47.48ID:xS3gwMFJ0
>>467
tefu君たいしてすごくないな
ありがとう!
2021/01/30(土) 22:54:30.67ID:inFBwlEk0
昭和の頃からExcelできる=パソコンできる
パソコンできる=Excel Wordできる
この固定観念は不変だいまだに
何故なんだや?
2021/01/30(土) 23:08:10.45ID:O0XirISQ0
だれの概念だ
おれはしらんぞ
2021/01/30(土) 23:08:37.64ID:XeNTB87Q0
固定観念ではなく社会に出てPC使う上で一番必要になるから
2021/01/30(土) 23:14:56.21ID:xzjRtN8LM
昭和だと8bitパソコンの全盛期か?
2021/01/31(日) 01:25:22.99ID:SqzzHClod
>>460
えっ!Excelにjavascript搭載?!
2021/01/31(日) 03:01:40.77ID:Y3xOrDkq0
そもそもアプリがEXCEL何だから何が搭載されようがパフォは大差無いだろうな
それならブックが超軽いとかの方が恩恵あるわ
2021/01/31(日) 10:40:24.97ID:/4jghnKY0
昭和だからMS-DOSって奴か
定年して10年位の近所の爺がやたらExcelの話しだけは詳しかったわ
平成初期って今みたいにpcが普及していたイメージ無いのだがね
2021/01/31(日) 10:44:54.99ID:LH9Tecev0
平成初期は家庭の普及は少ないかもしれないが学校でPCの授業はある時代
2021/01/31(日) 11:12:38.97ID:eXchLs/k0
平成初期頃ならPC-9801+MS-DOS上で一太郎とロータス123の時代
2021/01/31(日) 12:51:12.93ID:LqdlwBTz0
FileSystemObjectのOpenTextFileで開いたファイルのポインタを最初の行に戻す方法ってありますか?
ADOのMoveFirstメソッドみたいな感じの。
2021/01/31(日) 13:05:56.87ID:tZ/FxqNKd
Windows版Excel(もちろん英語版)が最初に発売されたのは一応昭和時代の終わり頃だよ
日本で使ってた人はほぼいなかったと思うけど

使い物になる日本語版が登場したのは平成5年の秋
2021/01/31(日) 14:29:00.06ID:BqVAUrnsx
Excel 95か97は持ってたはずだが…どこいったかな
Excel2000は現役?で使ってたりするw
現代のPCで動かすと爆速だから
2021/01/31(日) 15:54:08.87ID:/4jghnKY0
2000て今のパソコンで動くのか知らんかった
サンクス!
2021/01/31(日) 15:56:11.00ID:1T3G+5lu0
3.1も動くんじゃね?
2021/01/31(日) 16:01:12.88ID:xa1uSfuZH
Excel2000とWindows2000を勘違い
2021/01/31(日) 19:37:03.65ID:U4PZxrG+d
>>435
色んな言語やって適材適所。
VBAの場合、特殊な環境なのでVBAが有利だけど出来ないことも結構ある。
2021/01/31(日) 19:38:49.07ID:U4PZxrG+d
>>451
足らないなら作れば良いってのもある。
バイナリエディタぐらいなら2時間もあれば作れるだろ。
2021/01/31(日) 19:41:00.82ID:MeuEia/rM
足らないなら
足りないなら
2021/01/31(日) 19:42:32.36ID:U4PZxrG+d
>>461
問題はさ、結局VBAから呼び出す形じゃピタゴラスイッチみたいになるし、外部からExcel操作するようなのは、元々VBAでやる必要のない処理なので競合にならないということ。
2021/01/31(日) 20:16:56.70ID:7WfxADLN0
ワード97のイースターエッグでピンボールが遊べた重いで
エクセルは迷路だっけか
2021/01/31(日) 21:05:00.18ID:zGey4MUp0
冴子先生
2021/01/31(日) 21:39:17.09ID:xa1uSfuZH
カイル
2021/02/01(月) 10:35:57.85ID:vqEWjed4a
64bit対応をしてるんですが、素人なのでポインタ/ハンドルとそれ以外の区別が難しいです
GetInputStateはlongptrではなくlongで良い(実際どちらでも動くことは動きました)と思うのですが、合ってるでしょうか?

Private Declare PtrSafe Function GetInputState Lib “USER32” () As Long

(そもそも、パラメータや引数がないのに、何故型宣言が必要なのかからしてよく分からないのですが…)
492デフォルトの名無しさん (ラクッペペ MM3e-mj3q)
垢版 |
2021/02/01(月) 13:32:29.40ID:0pAIWcaIM
https://docs.microsoft.com/ja-jp/windows/win32/api/winuser/nf-winuser-getinputstate

検索しろよ
BOOLだからLONGでいいんじゃねえの?
493デフォルトの名無しさん (ワッチョイ 668e-RKRS)
垢版 |
2021/02/01(月) 15:05:09.75ID:cziAKMq/0
>>491
そんなことがわからない馬鹿はAPI使うなよ
494デフォルトの名無しさん (ワッチョイ 7d01-unxX)
垢版 |
2021/02/01(月) 16:35:31.74ID:4U/YDNuw0
ど素人の質問で大変申し訳ないのだけど、教えていただけないでしょうか。


Sub test()
Dim s As Worksheet

Set s = Worksheets.Add

Debug.Print "ActiveSheet.CodeName : " & ActiveSheet.CodeName
Debug.Print "s : " & s.CodeName
End Sub

というコードで、ワークシートを1枚追加してそのワークシートのコード名を取得しようとしたところ、
VBEを開いているときは問題なくコード名を取得できるのですが、
VBEを開かずに開発タブからマクロを実行させると、ActiveSheet.CodeName も s もブランクとなり、コード名を取得できません。
(VBEを開いた状態であれば、開発タブから実行させても取得できる)

何か追加で設定しなければならないことなどあるのでしょうか?

Excelのバージョンは 2019MSO(16.0.13530.20418)32ビット です。
2021/02/01(月) 17:21:35.68ID:90ziZ1xl0
Debug.PrintじゃなくMsgBoxにしても無理?
2021/02/01(月) 17:26:28.07ID:4U/YDNuw0
>>495
MsgBoxにしてみましたが、変わらずブランクのままでした…
2021/02/01(月) 17:33:05.91ID:90ziZ1xl0
CodeNameプロパティは
VBE閉じてると取得できないみたいね
https://social.msdn.microsoft.com/Forums/ja-JP/d8862af1-4790-44a8-a6b8-89fc9681f7af/excel-12398-codename?forum=officesupportteamja
2021/02/01(月) 17:40:51.41ID:vqEWjed4a
>>492
>>493
ありがとうございました
他人のコードを意味も分からず流用してました
戻り値なんですね
2021/02/01(月) 17:52:09.95ID:GaUVwnAZH
>>497
これまじかー
イベントを起動するシート判定に使おうと思ってたから痛いな
配布する前でよかったのが救いか
2021/02/01(月) 17:58:19.66ID:s7QwQuf00
Nameは使える
2021/02/01(月) 18:31:44.12ID:4U/YDNuw0
>>497
ありがとうございます!
おかげさまで解決しました!
ものによってはVBE閉じていると取得できないということもあるんですね…勉強になりました…
2021/02/01(月) 19:44:46.16ID:x4MWOITLH
497は既存のオブジェクトは大丈夫みたいだな
良かった
2021/02/01(月) 23:01:45.15ID:neAX3K2a0
VBAでIoT、たとえば防犯カメラを特定の時間稼働させることできる?
2021/02/01(月) 23:03:50.03ID:cgpbZmzy0
知らんけど何故VBAでやるの?
2021/02/01(月) 23:04:15.16ID:neAX3K2a0
もしくはラズベリーパイ動かせたりする?
2021/02/01(月) 23:04:51.14ID:neAX3K2a0
>>504
できるのかなと思て
ただの興味本位
2021/02/01(月) 23:11:41.22ID:KRwxYz520
できない
2021/02/02(火) 01:35:01.99ID:eRozloyAH
もちろんできるが
2021/02/02(火) 02:35:02.20ID:K9rz1pjI0
VBAなんか使わなくてもできるだろ
2021/02/02(火) 03:35:20.04ID:CQc47MX20
VBA以外のもんでも使ってりゃいいよね
511デフォルトの名無しさん (ワッチョイ 668e-RKRS)
垢版 |
2021/02/02(火) 05:46:24.43ID:rAxQwi5Z0
こんなこともわからない馬鹿には無理
2021/02/02(火) 07:45:22.80ID:k1bhpTE6x
複数のユーザーフォームをボタンと紐付された関数ごと
別のフォームのマルチページの一つのページとして統合したいんだけど
どうやったらいい?

コントロールのコピーしたら関数まっさらになってしまう
2021/02/02(火) 08:44:36.43ID:xrgeUBRvM
コードもコピペしてオブジェクト名整えれば?
2021/02/02(火) 09:39:10.72ID:k1bhpTE6x
すまん
問題はオブジェクト名にあった

コントロールをコピーして貼り付けるとコピー元とは無関係に
左上から連番でオブジェクト名が新規に付けられてしまう
それで元のコードとの相関性がグチャグチャに

他のフォームからコピーするとオブジェクト名の重複が発生するから
しょうがないとは思うが…

複数フォームを一つのフォーム内ページで管理出来たらコンパクトでいいと思ったが甘かったか
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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