Excel VBA 質問スレ Part64

■ このスレッドは過去ログ倉庫に格納されています
2019/12/02(月) 23:43:54.18ID:ngrqyTy20
!extend:checked:vvvvv:1000:512

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

※前スレ
Excel VBA 質問スレ Part63
https://mevius.5ch.net/test/read.cgi/tech/1568630099/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
2020/02/27(木) 00:17:32.13ID:5xLWm1lA0
「小学生並みの表現力が誤解を招いたにもかかわらず悪態をついた卑しき自分が存在してすみません」って言え
2020/02/27(木) 04:21:27.06ID:NxJu2KcC0
たしかに「使える人」「使える状況」どっちにも読めるけど、俺は初見では「使える人」の方だと思った

判断の理由は、まずこの文章には主語がないこと
そこで想像で「俺は」を補い読み進めると、次に同じ文章の中に「作れる」「選択しない」という単語が、また主格を伴わずに出てくる
この場合は、すべての動詞の主体は「人」だと判断するのが自然
754デフォルトの名無しさん (ワッチョイ 0b94-ctjd)
垢版 |
2020/02/27(木) 04:35:15.51ID:PX1R20t40
ネチネチとクドい言い方がキモいよ
2020/02/27(木) 04:55:30.05ID:RMeeA8fN0
理解力足りない奴がクドクド夜中まで大変だなw
2020/02/27(木) 05:05:43.27ID:F9flkDmPd
4時21分は夜中だけど4時55分は朝
757デフォルトの名無しさん (ワッチョイ 3a26-7qQN)
垢版 |
2020/02/27(木) 05:27:02.00ID:1NTaOPIN0
文章力低すぎて試験で失敗したタイプ
2020/02/27(木) 06:51:41.59ID:6N44UBOdM
文章力で試験に失敗とかそんな経験ないけどなw
そもそも今時ム板見てる人でVBAだけ使える人って珍しくね?
2020/02/27(木) 09:46:48.05ID:RXnANkEf0
論点ズレズレで遊ぶ大人(外見だけ)?
2020/02/27(木) 12:41:36.10ID:6N44UBOdM
試験とか言い出して論点ずらそうと必死な奴を虐めるなよw
2020/02/27(木) 14:04:05.59ID:XYBaslRL0
CGだとわかっていてもwww
2020/02/27(木) 14:16:04.01ID:xizTLawga
>>756
わかる(わかる)
2020/02/27(木) 15:36:14.26ID:C8kQhi5I0
言葉の内容じゃなくて表現に文句つける奴は大体無能
完璧な意思疎通なんて無理なんだから曖昧な点は都度確認して
ああそういう意図だったので済むのにネチネチとなんの生産性もない
2020/02/27(木) 18:40:02.39ID:cb25kGwba
せやかてクド
2020/02/27(木) 22:04:00.42ID:d4EgxlqA0
わふー
2020/02/27(木) 22:06:00.45ID:JMJaKBCQ0
>>742
VBA で何でも作れるのでは?
だって win32api を自由にコールできるのだから
2020/02/27(木) 23:43:30.37ID:qWPXm1F00
>>766
非同期処理や並列処理はできないやろ
たぶん
簡単にできるなら書き方教えてほしいっす
768デフォルトの名無しさん (ワッチョイ 678a-mhrx)
垢版 |
2020/02/28(金) 06:19:02.24ID:unYBun0f0
それはズルいだろって言われそうな方法なら…。
2020/02/28(金) 06:20:10.17ID:L+KjVouD0
C#とかで処理してVBAに渡すとか?
2020/02/28(金) 07:09:52.34ID:yw4NYUGs0
別のEXCEL(多数)起動して並列処理もどきをやったことはあるんですが、無理やりな感じは否めないかな…
ソース(ファイル)も分散するし
(プロジェクトとしてフォルダに纏めるくらいしか…)
VBAの知識だけでできるのはいいんだけど
771デフォルトの名無しさん (JP 0H27-iWdh)
垢版 |
2020/02/28(金) 10:20:28.33ID:zXCoNy+pH
sendkeysを使って
他のアプリを操作し
ctrl +pgdnをしたいのですが実行されません

SendKeys"^{PGDN}",True
2020/02/28(金) 12:25:39.80ID:2j7Cc3iW0
>>771
まず第一に、SendKeysの確実性はそんなに高くないので、正しく記述しても必ずしも毎回動くとは限らないということを理解しておく必要があるよ
その上で
アクティブなウインドウに送るので事前に他のアプリをアクティブにしておく
他のウインドウをアクティブにするのにウインドウタイトルを指定する必要があるのでその記述にも気を配る
他のウインドウがアクティブになるのにタイムラグがあるのでSleepとかを使って調整する必要があるけどVBAには無いのでほかから借りてくるかApplication.Waitで代用する
どうしても動かない場合は、もっと簡単なケースで試す
2020/02/28(金) 17:21:36.80ID:eDNEl8wD0
Excel21016
現在フォルダを指定してその配下にあるファイルの一覧をシートに記載するのを作成中なんですが。
FileLen関数でファイルサイズを出してるんだけど戻り値がLiong型でそれを越えるファイルだとマイナスの値が
返ってきてしまう。そこでFileLen関数以外で正しくサイズを返せるものあるいは工夫ってあります?
2020/02/28(金) 18:23:01.43ID:MtqAk8k50
Scripting.FileSystemObjectのFile.Sizeを使うとか
2020/02/28(金) 18:24:45.49ID:tYO2NqnQa
入力ミスかw
2020/02/28(金) 18:31:00.61ID:J9MIpREGM
FileSystemObjectを使う機会は増えたな
2020/02/28(金) 18:54:32.55ID:eDNEl8wD0
>>774
ありがとう。調べて作り直してみるよ
2020/02/28(金) 19:38:05.63ID:XpFHUdRGa
vbaのlong って最大いくつ?
2020/02/28(金) 19:53:42.22ID:04Y2DCb30
符号付4byteだから(256^4)/2-1
2020/02/28(金) 20:02:10.27ID:aE85awzW0
>>778
2G
2020/02/28(金) 22:10:29.04ID:KGz3N4NDa
2G越えるファイルexcelで読むの?
2020/02/28(金) 22:12:17.34ID:KGz3N4NDa
あ、一覧か
とりあえず負の数なら強引に変換するとか
2020/02/28(金) 22:50:10.05ID:aE85awzW0
それでも4Gまでしか扱えないから困るんじゃない?やっぱり根本的に解決するにはFSOが必要だよ
2020/02/29(土) 01:59:32.20ID:nzXCWKfq0
LongLongってVBAで使える?
2020/02/29(土) 06:46:07.87ID:PnWd0bax0
>>784
Officeが64bit版なら使える
2020/02/29(土) 08:45:02.05ID:yVx3ckV70
>>773
無理にVBA使わなくてもBATでいいんじゃ・・。
2020/02/29(土) 10:00:21.23ID:8kABrwU4d
>>772
Sendkeysなんて絶対使わないというぐらいの考え方であるべき。
Sendkeys使うぐらいならWM_KEYUP使う。
普通はWM_COMMAND使う。
2020/02/29(土) 17:24:40.65ID:pn9TVa1rd
でもWindowsの設定とかストアアプリ系に入力したい時そういう考えだと詰む
2020/02/29(土) 19:33:22.04ID:8kABrwU4d
>>788
つまねえよ。
方法なんていくらでもある。
2020/02/29(土) 19:49:03.27ID:aTMkJ8LJ0
>>789
Windowsの設定はいいとして、ストアアプリ系で他に使えるいくらでもある方法教えて下さい
2020/02/29(土) 19:55:39.58ID:yVx3ckV70
>いくらでもある

何か前にも聞いたことあるな。
いくらでもある → 具体的にはどうするの → 絶対答えられない のパターン。
前とは別の人だといいね。
792デフォルトの名無しさん (スプッッ Sd8a-ctjd)
垢版 |
2020/03/01(日) 01:31:17.39ID:08o/9f1Pd
WindowsPhoneとかストアアプリとかアッというまに消えたよね
2020/03/01(日) 14:55:22.38ID:HFjntDoM0
消えたのか、どうでもいいけど
2020/03/01(日) 20:39:03.78ID:pGVc13rd0
作る側の負担が大きい上にメリットがない
2020/03/01(日) 20:39:37.46ID:0p2p+SL30
>>790
その詰むというアプリは具体的に、何てアプリで、どこで詰むんだよ?
アクセシビリティやUIAutomationもダメなのか?
2020/03/01(日) 21:13:10.43ID:e3qx9Rp60
>>795
アクセシビリティって何すか?
2020/03/01(日) 21:20:05.52ID:l9YkKU150
その人じゃないが、UIAutomationのinvokePattern.Invokeでフリーズして詰んだことはある。
2020/03/01(日) 21:23:39.21ID:l9YkKU150
>>796
多分IAccessible。
2020/03/02(月) 00:30:19.58ID:lG3i9xSc0
>>798
多分も何も、それ以外有るまい。
UIAutomationの前身だろ。

>>797
それは何かが足りないとか、他の方法も駄目なのかとか、いろいろ回避策有りそうだが。
2020/03/03(火) 15:10:58.72ID:7/oOWVG0M
プログラミング言語人気ランキング2020
https://active.nikkeibp.co.jp/atcl/act/19/00124/

使用している言語のトップ10内にVBAが。まあ、実際そんなもんでしょう
C/C++がトップなのは日経がゆえなのか…
PL/Iが出てるのが懐い(ToT)
htmlが違和感。まあ言語だけど…
2020/03/03(火) 17:19:11.87ID:JZf49imxr
>>800
全部ウィンドウズでできますか?
2020/03/03(火) 18:02:04.76ID:ZNfWdjcz0
>>800
COBOLがC#の1/3もあるのか
すごいアンケートだな
2020/03/03(火) 18:59:05.76ID:tIhoJqwEa
rubyってこんなもんか
2020/03/03(火) 19:26:06.93ID:b2+NWnE80
COBOLは使いたくなくても使わざるを得ないんだよ
2020/03/03(火) 20:03:07.46ID:AJx5UoX4M
まあ業務で使ってる言語ならそれほど違和感無いな
なんだかんだ言ってC/C++はつえーわ
あといい加減HTML/CSSを入れるのをやめろと思うわ
言語と言ってもプログラム言語じゃねーし
2020/03/03(火) 22:21:40.76ID:dFpQRGVD0
Java と VBA が同じって有り得ないと思うが
2020/03/03(火) 22:32:12.13ID:ZNfWdjcz0
だから職場で強要されてる言語のランキングでしょ
能率とか好みとか無関係
808デフォルトの名無しさん (ワッチョイ ff8e-oceE)
垢版 |
2020/03/03(火) 22:33:01.86ID:dGcpOur50
これと似たような理由だろ
https://i.imgur.com/q4GXr11.jpg
2020/03/03(火) 22:33:31.58ID:1bYPNvMdx
COBOLは数十年に及ぶ後方互換性維持の実績があるから絶対にこのくらいの順位で落ち着く
COBOL不要論とか妄言だからなマジで
2020/03/03(火) 22:49:49.99ID:b2+NWnE80
VBAの依頼はとても多い
2020/03/04(水) 00:14:55.68ID:SHIP3lO60
アドインをショートカットで呼びだす方法が調べてもわからないのですがあるのでしょうか
2020/03/04(水) 00:21:59.37ID:9VsHR+eQa
業界が慢性的な人不足だから、ある程度メジャーな言語ならそりゃ絶対的にはどれでも依頼はとても多いさ
どれを選んでも仕事は十分にあるのだから、どれとは言わないがあえて単価も人材市場評価も低いものを選ぶ必要はない
2020/03/04(水) 06:19:22.68ID:Yqjto87s0
>>806
うちだけかも知れんがJava案件激減したよ
VBAは自前のツールとかちょっとしたデータ処理に使ってる人も多いし
814デフォルトの名無しさん (アウアウエー Sa3f-QWq5)
垢版 |
2020/03/04(水) 12:28:43.38ID:5h+Z4JsAa
VBAの将来性ってどうなんですかね?
これがいい、っていう代わりがあればすぐにも移行するけど、それが示されないのにただ VBAは将来が… って言われてもなぁ…
2020/03/04(水) 12:48:25.12ID:pN64i/qda
なんか何年も前からそう言われ続けている気がする
2020/03/04(水) 12:52:02.85ID:wYjs4WK40
現状維持か消えるかだろう
どう考えても発展する余地はない
2020/03/04(水) 12:53:02.66ID:wYjs4WK40
どちらにせよ今のCOBOL需要みたいなのは残るだろうね
2020/03/04(水) 12:53:45.23ID:192gnjdP0
ずっと10年以上VBAは終わりと言い続けてるやつがいるけど、ランキングを見ればわかるように現場では普通に使われてる
WindowsというOSも終わりと以下略

一度広まってしまった物は簡単には消えないんだよ
生態系を壊してるブラックバスと同じ
2020/03/04(水) 13:23:13.58ID:GaU/rHnt0
じゃあコロナも消えないな
2020/03/04(水) 13:55:31.39ID:HLZcEGPZ0
自然淘汰を待っているのと積極的に対策してるのを同列に語るのはどうかと
2020/03/04(水) 14:16:54.47ID:ryjR/JBt0
VBAが終わったらMSオフィスを使う理由がなくなる
2020/03/04(水) 16:39:27.01ID:MKyvAYdn0
何をもって終わったというのか、後続が出なくても現場で使っていたら終わってないし
2020/03/04(水) 18:32:59.89ID:O/qwuvY6M
まあ既存のVBAマクロが新しいバージョンのExcelで動かなくなる日が来るとは思えないが、
VBEが廃止されて新規に作れなくなるのは十分にありうる
終わりがくるとしたらそれだろう
実際、VisualStudioなどのMS製品の多くは昔はVBAが入ってたわけだしな
2020/03/04(水) 19:49:17.22ID:192gnjdP0
>>819
もちろん病原菌も根絶は不可能
治療法を探して対処するしかない
2020/03/04(水) 20:05:22.88ID:SHIP3lO60
>>811
これ誰か知りませんか
2020/03/04(水) 20:13:23.22ID:4N1Kq+pZ0
>>825
クイックアクセスツールバーに入れてAltで呼び出すのが手軽なんじゃね
2020/03/04(水) 20:17:28.31ID:3PnKhINo0
ショートカットってなにさ
828デフォルトの名無しさん (ワッチョイ ab01-UjD1)
垢版 |
2020/03/04(水) 20:26:14.55ID:X6jjanDB0
ctrl + A みたいなんやろ
2020/03/04(水) 20:41:44.37ID:hxmeGFhc0
調べてもわからないってなんやねん・・。
俺もわからないからググったら、検索結果の1番上に出てきたじゃんか。
830デフォルトの名無しさん (スプッッ Sdbf-kTmN)
垢版 |
2020/03/05(木) 14:00:12.70ID:rKi2A6DKd
昔は何でもかんでもエクセルだったけど今は専用アプリが増えてエクセルの出番が減ってる
今後はもっとエクセルを使う場面が減るだろう
エクセルが無くなる事はないにしても
2020/03/05(木) 15:07:31.53ID:Ug+scqfur
専用アプリ?
832デフォルトの名無しさん (ワッチョイ 0feb-Lqe9)
垢版 |
2020/03/05(木) 20:34:42.71ID:K6v7QzcZ0
質問です。よろしくお願いします。
ブックにある複数のシートをそれぞれ順に、いちばん左上が表示されている状態にしておく、という動作を作りたいです。
Do
  Name = (対象シートの名前)
ThisWorkbook.Worksheets(Name).Select
ThisWorkbook.Worksheets(Name).Range("A1").Select
ActiveWindow.ScrollColumn = 1
ActiveWindow.ScrollRow = 1
  (対象を次のシートに切り替え)
Loop

このように書きました。
しかし、この書き方では、このプログラムを動作中にたまたま他のブックが選択されてしまったりして、
当ブックがアクティブでなくなった場合、ActiveWindow.という部分でエラーがでるんじゃないかという気になりました。
とはいえ、ThisWorkbook.Worksheets(Name).ScrollColumn = 1 というように書いてもダメみたいです。
また、A1をselectするだけでは、表示が左上になりません。
何かいい方法ないでしょうか?
2020/03/05(木) 21:15:18.39ID:/LYBmypS0
>>832
application.goto
2020/03/05(木) 21:41:08.70ID:yWFKM6iN0
>>832
Application.Goto Sheets("Sheet1").Cells(1, 1), True
2020/03/05(木) 23:02:22.56ID:WJr0+YDk0
>>832
Application.ignoreRemoteRequest = false
2020/03/06(金) 01:00:24.26ID:kNbJ3ddM0
>>832です。
>>833-834
ありがとうございました。
確認なんですが、
Application.Goto というのは、自ブックのウィンドウがアクティブではなく、別のウィンドウがアクティブになっている状態で、
むりやり自分のブックとそのウィンドウをアクティブに変更するのではなく、
ひっそりと陰で、アクティブではない状態のまま、ただ「自分のブックの範囲の中ではこのシートがもっともアクティブ」という
解釈でやってくれるという理解でいいのでしょうか?
2020/03/06(金) 01:31:44.92ID:Z17kfdKR0
>>814
>>818
VBAはオワコン、オワコン、って言われてきたが
実際はマイナー言語の方が先に終わってるからな!
2020/03/06(金) 01:33:53.22ID:Z17kfdKR0
>>823
VBAをPythonやJSに置きかえればいいのにな
今はVBAの言語仕様が古くなってしまったから

>>830
そりゃ専用アプリの方が便利だろうが
エクセル自体の代替はほとんどないな
839デフォルトの名無しさん (ワッチョイ 9b8a-FZuH)
垢版 |
2020/03/06(金) 06:07:03.55ID:3qnD0oaT0
逆に1,1をselectして左上が表示される俺のエクセルは一体どうなってるんだ。。。
2020/03/06(金) 06:46:48.61ID:fNVi1eTS0
VBAはマクロ言語としては普通に使いやすいと思うけどな
汎用的な言語としてはクソだとは思うけど
2020/03/06(金) 18:37:22.13ID:XdrWOsjB0
>>840
VBA のどのような点が汎用言語として残念なのでしょうか?
2020/03/06(金) 18:42:09.16ID:TqGCTxoCH
>>838
JSはない
あの癖がありすぎて無理だろ
2020/03/06(金) 18:44:01.50ID:Z17kfdKR0
>>842
本音を言えばオレもクセが嫌いだけど
最近JSにクラス構文できてマシになった

本当はRubyで一番書きたいんだけど
Windowsに嫌われてて採用されなそうだから
2020/03/06(金) 19:21:04.42ID:9o5wzflr0
>>836
実際やってみたらどうだった?
2020/03/06(金) 21:02:36.48ID:hYOq9QPMM
>>842
俺もそれには同意したいがnodejsとかの状況見たらそんなことは言ってられないような気がする
2020/03/06(金) 21:13:00.50ID:VJTVQ6P20
↓宣言

Dim warota As String
Dim kusa As String

↓ずれてるのがしっくりこないのでこうしてみる。

Dim warota As String
Dim kusa  As String

文字間が空いているのも嫌なので、
↓もうこれでいいやwwwwってなる。

Dim warota As String, kusa As String
2020/03/06(金) 21:13:29.84ID:VJTVQ6P20
どうすればいいっすかね。
848デフォルトの名無しさん (ワッチョイ 9f01-cLLN)
垢版 |
2020/03/06(金) 21:41:31.84ID:qqIAHFEh0
>>838
何頓珍漢なこと言ってんだよ。PythonはVBAより古いぞ。

1991年 Python
1993年 VBA
1996年 JScript

Pythonなんてゴミみたいな文法で、VBAとは比べ物にならない。
VBAも古くなったのは確かなので、VBA.NETに進化させるべきだな。
2020/03/06(金) 22:08:33.10ID:zRyfvowG0
VBAはVBの長い歴史を引き継いでるんだから、VBAの登場時期だけでくらべても意味がない
2020/03/06(金) 22:19:00.08ID:8BomHpEo0
>>846
Dim warota$, kusa$
851デフォルトの名無しさん (ワッチョイ 9f01-cLLN)
垢版 |
2020/03/06(金) 22:44:21.46ID:qqIAHFEh0
>>848
VBは1991年登場だからPythonと同じ。構造化され、1964年のBASICとは別物。

VBAにはwith文(Python風のではなくPascal風の)があるので、同じオブジェクトに
対する連続した操作をすっきり記述できて、Excelに適している。
2020/03/06(金) 22:47:00.07ID:Oq5LDxMU0
>>848
古いから駄目ってか?
お前の方が頓珍漢すぎるw
C++とか1983年だぞ
登場年よりどれだけ改訂されてるかだろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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