X

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
2021/01/28(木) 10:58:39.20ID:3f25njR4H
>>336
90年代はみんなマニュアル本を買ってた
中身は英語のオンラインヘルプを翻訳して印刷しただけの物なんだけど、誤植と誤訳だらけ
VBAに限らず、1冊3000円〜8000円ぐらいのぶ厚い本が大きい本屋のパソコンコーナーに並んでた
2021/01/28(木) 11:18:10.18ID:3f25njR4H
こういう辞書みたいなやつ、みんな持ってた
https://i.imgur.com/D0Vbidw.png
2021/01/28(木) 11:56:54.04ID:RkzGmpaJd
あ、そうなのか
こうゆう辞書みたいな本はマイクロソフトから情報もらって作ってたのかなね
英語ヘルプで試行錯誤で作ってたのかね
2021/01/28(木) 11:58:15.69ID:8m13k+420
これじゃないけど分厚いの1冊持ってるわ
341デフォルトの名無しさん (ラクッペペ MM8f-rma+)
垢版 |
2021/01/28(木) 15:38:23.08ID:jA4rpiExM
今のExcel VBAって日本語ヘルプ付いてないの?
2021/01/28(木) 15:51:32.46ID:zfNxSqnZd
>>339
発売前に英語版のヘルプが入ったCDをMSから送って貰って、それを手分けして翻訳した
Officeじゃないけど翻訳のバイトしてた

>>341
あるけど、今はオンラインヘルプに飛ばされるからネット環境がないと見れない
昔のバージョンはローカル化できたけど今は無理だと思う
2021/01/28(木) 15:53:40.51ID:8m13k+420
F1ヘルプはあんま役に立たない
2021/01/28(木) 15:55:46.33ID:8thmnp2a0
>>342
バイトすごいですね
今は何の職業?
2021/01/28(木) 19:35:23.37ID:1VXsvNu50
Excelのハイパーリンクをクリックするたびに

MSのサイトにアクセス先の情報を送って
そこからリダイレクトしていたという
衝撃の事実を今日知った。

10年以上つかってて気が付かなかったよ
死ねこいつら
2021/01/28(木) 20:13:31.96ID:RkzGmpaJd
>>345
え、これマ?
2021/01/28(木) 20:18:19.29ID:cYs3zIiO0
ソースを
2021/01/28(木) 20:26:06.12ID:1+p+qv3s0
これ買っとけばいいみたいなど定番の本はある?
ネットでやりたいことをちょこちょこパクって繋げてるけど限界だわ
汎用性の高い一つの大掛かりなVBAを組もうとしたら圧倒的に知恵がない
2021/01/28(木) 20:34:03.81ID:8m13k+420
ネットで調べても書き方が人それぞれだったりちゃんと整理されれなかったり
肝心の自分の目的を書いてなかったりそんなんばっかだからな。
それらの無駄とストレスを減らすために、辞書は1冊あった方がいいな。
書き方と順序が統一されてるだけでも有用。
2021/01/28(木) 20:35:31.88ID:8m13k+420
できる大辞典は定番ではある
他の本はいらん
これにないなら諦めて他で調べればいい
2021/01/28(木) 20:54:55.16ID:8thmnp2a0
vbaでIEとかChromeとか操作できるのは最近分かったけど(やったことはない)、他に操作できるアプリってどのくらいあるの??
2021/01/28(木) 20:55:48.34ID:8m13k+420
エッジもできる
2021/01/28(木) 21:05:03.93ID:8thmnp2a0
あ、ブラウザー以外でおねがいしゃす
2021/01/28(木) 21:09:54.36ID:eBfsAdOM0
>>345
それExselとか書いてないかい?w
2021/01/28(木) 21:27:46.20ID:1VXsvNu50
https://superuser.com/questions/444984/excel-hyperlink-not-redirecting-properly-bug


This is a known Microsoft bug where hyperlinks are redirected to another page if:

You are using Microsoft Internet Explorer:
with a proxy server
while using a firewall that does not allow HTTP requests on your local network
Internet Explorer is not your default browser.
The ForceShellExecute registry key is not present or is not set to 1

You can apply the fix from here:

http://support.microsoft.com/kb/218153

バグなんてもんじゃねえ
2021/01/28(木) 21:31:23.39ID:ABoKcn6c0
>>351
参照設定の中に入ってるのは普通に動かせるし、
WindowsAPIとUIAutomationとSendKeysがあるから、
マウスとキーボードで動かせるようなものなら大抵。
極端な例を言うと、VBAで仮想のファミコン(エミュ)を作ってマリオ動かす人もいる。
357デフォルトの名無しさん (ワッチョイ 7f8e-09qk)
垢版 |
2021/01/28(木) 21:34:15.56ID:46r/uxOM0
>>348
「一度死んでみた」
2021/01/28(木) 21:37:00.50ID:ABoKcn6c0
って書いてて思ったんだけど、
IRモジュール使ってVBAでテレビとかエアコン動かせる人いる?
2021/01/28(木) 21:50:11.88ID:O9WqV6fA0
俺さ、VBAのソース書いてて
インテリセンスが糞だと思ってたけど
上には上があるんだなぁ

今ClassicAspとかいう昔の組んでるんだけど
HTMLとJavaScriptとVBScriptで出来てて
テキスト編集ツール使って
テキストファイルで作ってる
もちろんインテリセンスなんて全く効かない

そうなると一番怖いのが文法エラー
VBAなんかだと一発で分かるけど
最初っからコンパイル自体されないので
どこでエラーになっているか
全く分からない
2021/01/28(木) 21:57:01.68ID:SI9VK8hs0
ブラウザの開発ツールの使い方を知らないだけでは
2021/01/28(木) 21:58:09.32ID:8thmnp2a0
>>356
vbaでエミュってエミュをvbaで起動してるってことではなく?
何をどうやったら作れるのか不思議
vbaでIoTの組み込みや操作も可能なのだろうかー
2021/01/28(木) 22:02:50.14ID:TxA55uF+M
元々仕事でなんとなしに触らざるを得なくなってコピペやらその場限りのググりで生きながらえてきたんだけどちゃんと筋道立てて1から勉強したいというときに適した本やサイトはありますか?
2021/01/28(木) 22:04:15.85ID:8m13k+420
本はある
サイトはない
2021/01/28(木) 22:04:36.53ID:8m13k+420
本も当然、1冊では終わらん
入門編から順に買うことになる
365デフォルトの名無しさん (ワッチョイ 7f8e-09qk)
垢版 |
2021/01/28(木) 22:05:55.11ID:46r/uxOM0
>>359
馬鹿は黙っていればいいのに
2021/01/28(木) 22:49:59.34ID:TfrdJEz20
>>362
慣れてきて半人前くらいになってきたな、と思うならこの本

入門レベルでは決して足りない実務に必須のスキルとは ExcelVBA 実戦のための技術
2021/01/28(木) 23:07:43.56ID:ABoKcn6c0
>>361
VBAでエミュ。
今は消えてるけど、以前ここにワードで動かしてる動画があった。
https://www.nicogame.info/ja/watch/sm28022855

UPされた当時は実機並みのスピードは出てなかったけど、
今のハイスペックPCで動かしたらどうだったか・・。
2021/01/28(木) 23:11:02.95ID:8thmnp2a0
>>367
謎技術
2021/01/29(金) 00:41:18.26ID:R2RLQXG+0
VBAって当たり前だろうけどエクセルの基本的な知識がないと使えないよね?
エクセル全然知らないから大変だな…
2021/01/29(金) 00:42:02.94ID:SG5MocSx0
それじゃ役に立てる場所がないじゃん
実践で使わないと上達しないぞ
2021/01/29(金) 00:49:19.50ID:SG5MocSx0
未来の開拓のため!つっても普通
「よし、エクセルを覚えるぞ」からだろそれは…
PCにエクセルをインストールしてエクセル入門の本を買うところからだな
書式とか関数とかピボットとかスイスイできるほどに覚えてからだなVBAは
でないとプログラムの意味も理解できない
2021/01/29(金) 01:35:07.55ID:R2RLQXG+0
>>371
助かります!
2021/01/29(金) 02:08:08.30ID:R2RLQXG+0
エクセル初歩から覚えるなら絶対買っとけ!って書籍やサイトはありますか?
2021/01/29(金) 02:35:09.20ID:SG5MocSx0
「絶対」は無い。
まあ「絶対ではないがまったり普通に」、
FOM出版のよくわかるシリーズでいいのでは。
当然最初は基礎編ね。
スレ違いだからこれ以上は然るべきところで聞くのがいいと思う。
2021/01/29(金) 03:41:44.14ID:IWwHfNXwH
>>373
入門サイト
https://excel-ubara.com/excelvba1/
2021/01/29(金) 03:58:52.37ID:R2RLQXG+0
>>374
>>375
ありがとう!!
とりあえず神髄を参考にしていきます
2021/01/29(金) 08:15:50.80ID:Xkyf+iIu0
>>369
いや、Excelの知識無くてもVBだけでExcelを動かしてる人いますぜ
その人当然ワークシート関数をろくに知らない
378デフォルトの名無しさん (ワッチョイ b501-qCTK)
垢版 |
2021/01/29(金) 09:35:52.52ID:Llo2P1qs0
昭和の頃は、Excel講座に通うサラリーマンはバカにされてたけど、同時にvi使える人が達人として尊敬されてた。

どう考えてもテキストエディタより表計算のほうが技能必要だけど。
379デフォルトの名無しさん (ワッチョイ b501-qCTK)
垢版 |
2021/01/29(金) 09:38:10.99ID:Llo2P1qs0
日本の成長に脅威したCIAが、たいていの問題に対して使える優秀な製品を貶し、使いどころの限られる古いテキストエディタユーザーを神扱いしたのではないか?
2021/01/29(金) 09:40:46.74ID:higCsMc/M
そもそもVBAは最後の手段であって、それを活用することは決して褒められたものじゃない
ワークシートの機能で簡単にできることを知らずにシコシコ馬鹿みたいにVBA書いてるアホは多い
381デフォルトの名無しさん (ワッチョイ b501-qCTK)
垢版 |
2021/01/29(金) 09:44:43.17ID:Llo2P1qs0
結果、CIAの思惑通り、標準的な日本人はviを使いこなせるが、Excelを使いこなす日本人は少ない。
Excelを使いこなせた方が絶対便利なのに。
2021/01/29(金) 09:55:51.98ID:eIG6sa+UM
テキストエディタはC++やJava などでプログラム開発するためのただの道具だけどな
むしろ本格的なプログラム組むならVBAは汎用性に欠ける
2021/01/29(金) 10:15:15.81ID:9nrwkhnr0
>>378
昭和にExcelあったっけ?
2021/01/29(金) 10:17:07.73ID:9nrwkhnr0
最近はSheetというかExcelの外でのExcelVBAの活用方法を知りたい
2021/01/29(金) 10:28:32.08ID:Hw3psapAM
Excelと他のアプリを連携するにしてもある程度の規模になるとVBAではなくてOffice add-ins(JavaScriptまたはTypeScript)やVSTO(C#)の利用をMicrosoftは推進してる
あくまでVBAはMS Officeのシステムの枠内で処理の自動化を実施するための道具
2021/01/29(金) 11:18:05.10ID:smfBIAno0
>>383
Excel 自体は存在したけど日本語版じゃないしMac用だからリーマンが講座に通うとかはありえんだろうな
アメリカのリーマンかも知れんがw
2021/01/29(金) 11:33:25.67ID:IWwHfNXwH
一番最初にMac版が発売されたのは昭和60年9月、ただしこの時点ではマクロは使えなかった
Windows版は昭和62年10月発売で、ここからマクロ機能が搭載された

この時代だと、viが使える人は別に尊敬されてない
そもそもほとんど知られてなかったんだから、使える人がすごいとか判断すらできなかった
2021/01/29(金) 13:42:22.04ID:Xkyf+iIu0
知人がYouTubeで表計算なりVBを勉強したいと言っているが、同志達からみてどのチャンネルがおつつめ?
金子?ユースフル?たてばやし??
自分、YouTubeであまりExcelの参考にはしないから誰が優秀か全然わからん
2021/01/29(金) 13:44:47.29ID:IzzhGfbbM
つべを見ないのが1番参考になる説
2021/01/29(金) 13:46:17.88ID:Xkyf+iIu0
知人いわく、金子ていうあんちゃんがやたら人気あると聞いてさ
でもプロではないと思うから自分なら観ない
2021/01/29(金) 15:03:44.68ID:XKqQMMzPd
お前ら化石みたい頭してそうだもんな、youtuberとか頑なに受け入れられないんだろうな
俺は金子見て勉強してるよ
2021/01/29(金) 15:07:49.71ID:hZ93xN6Od
Exportasfixedformatメソッドでpdfを出力するとき、そのファイル名にセルの値を参照してるのですが
セルの値が改行されているとエラーが出ます。
エラーを出さず改行を無視してファイル名をつけたいのですが、どうすればよいでしょうか?
2021/01/29(金) 16:22:00.18ID:SG5MocSx0
コード見せてよ
2021/01/29(金) 16:32:12.51ID:wsDc5NzC0
改行の記号忘れたけど
あれをReplaceで消せばいいだけじゃね
2021/01/29(金) 16:36:09.23ID:SG5MocSx0
vbCrとvbLfとvbNewLineを空文字化すればいけるかな?
2021/01/29(金) 16:52:50.17ID:ur5sUiDWd
s = Replace(Replace(Replace(Replace(s, vbCr, ""), vbLf, ""), vbCrLf, ""), vbNewLine, "")
2021/01/29(金) 17:07:40.77ID:8cihH0fua
vbNewLine は vbCr と vbLf の組み合わせか、いずれか一方だから、vbCr と vbLf だけでもいいかも
2021/01/29(金) 17:08:58.02ID:8cihH0fua
そんな定義はないか…
2021/01/29(金) 17:32:34.00ID:wsDc5NzC0
396を関数に
Private Function Getファイル名(byval s as string) As String
Getファイル名 = Replace(Replace(Replace(Replace(s, vbCr, ""), vbLf, ""), vbCrLf, ""), vbNewLine, "")
End Function
2021/01/29(金) 19:31:25.44ID:Xkyf+iIu0
田中派と金子派がハッキリ別れてるわ自分の界隈は
401デフォルトの名無しさん (ラクッペペ MM3e-mj3q)
垢版 |
2021/01/29(金) 20:44:38.50ID:Wez0GYRkM
他のダメ文字は来ないことをお祈りか
2021/01/29(金) 21:10:33.96ID:IWwHfNXwH
youtubeができる前に基本は覚えたから今さら見る気になれないなあ
だからどっちがどうとかも興味ない
2021/01/29(金) 21:43:57.23ID:MBltpUk80
>>399
全部空文字にするなら、置換する元のリストをArrayでくくって、lbound(配列)〜ubound(配列)でその配列の中身ループさせればいいだけじゃん
それ可読性悪すぎ
2021/01/29(金) 21:55:58.53ID:IWwHfNXwH
要素がもっと多いと配列にした方がメンテ性は良くなりそうだけど、4つだと微妙だなあ
個人の好みで片付けたくなる

For Each x In Array(vbCr, vbLf, vbCrLf, vbNewLine)
  s = Replace(s, x, "")
Next
2021/01/29(金) 21:59:33.79ID:IWwHfNXwH
あとForで回すと微妙に遅くなるんで、関数化(ブラックボックス化)して大量のデータを処理するなら1本の式にまとめた方がいいかもしれない
2021/01/29(金) 22:14:22.45ID:SG5MocSx0
つまり403は考え足らずだったと
2021/01/29(金) 23:07:49.79ID:GBOzgJJf0
CreateObject("VBScript.RegExp")で探すのも大差ない?
408デフォルトの名無しさん (ワッチョイ 1163-bDzS)
垢版 |
2021/01/30(土) 00:02:38.07ID:U1XssVyb0
w、Wsは不用です。
あるシートの
w.Cells(1, "B")には000001234や000001234-1などの文字列が入っています。
ハイフンなしの場合は下7桁を。
ハイフンありの場合は-より左の下7桁と-以降を抜き出して
別のシート.同じ行のA列に入れたいです。
下記の処理でelse節を通る場合、
Rightしたときに前ゼロが消えちゃう(1234だけになる)んだけど
消えないようにするにはどう書けばいいですか。
(If節を通る場合は消えません)

If InStr(1, w.Cells(1, "B"), "-", vbTextCompare) >= 1 Then
Dim sNo() As String
sNo = Split(w.Cells(1, "B"), "-", , vbTextCompare)
sNo(0) = Right(sNo(0), 7)
Ws.Cells(gyo, "A") = Join(sNo, "-")
Else
Ws.Cells(gyo, "A") = Right(w.Cells(1, "B"), 7)
End If
409デフォルトの名無しさん (ワッチョイ 1163-bDzS)
垢版 |
2021/01/30(土) 00:03:27.01ID:U1XssVyb0
間違えました
w、Wsは不用です。

w、Wsはシートです。
2021/01/30(土) 01:01:10.51ID:5ChT/CTU0
>>403
>>404
なるほど勉強になるわ
いろんな書き方があるからプログラムは面白いな
スマホで打つの面倒くさいからコピペしたけど自分ならReplaceを4行に分けて一個ずつ処理してたわ
2021/01/30(土) 01:07:22.27ID:6QDP6TPLH
>>408
Else
  Ws.Cells(gyo, "A").NumberFormatLocal = "@"
  Ws.Cells(gyo, "A") = Right(w.Cells(1, "B"), 7)
End If
2021/01/30(土) 02:17:52.72ID:O2YJs/tfd
>>336
言っとくが、本気にするなよw
熟練者はネットも本も見るぞ。
ま、本に関してはVBAの本は見ないかも。
2021/01/30(土) 02:23:06.62ID:O2YJs/tfd
>>385
???
そうか?
VSTO廃れてるように見えるが。
情報少ないし。
2021/01/30(土) 02:42:40.27ID:fm9PSZiO0
>>408
単にWsのA列の表示形式が文字列じゃないだけじゃね
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が大半
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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