Excel VBA 質問スレ Part61

■ このスレッドは過去ログ倉庫に格納されています
2019/04/25(木) 23:41:03.61ID:rni/4bMj0
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512

ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
※前スレ
Excel VBA 質問スレ Part60
https://mevius.5ch.net/test/read.cgi/tech/1552736349/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
581デフォルトの名無しさん (ブーイモ MMe1-nH6h)
垢版 |
2019/06/09(日) 07:51:19.35ID:6FBaXgmQM
できます
582580 (ブーイモ MMe1-nH6h)
垢版 |
2019/06/09(日) 07:52:18.86ID:6FBaXgmQM
>>581
できるかどうかを聞いているのではない。
やり方を聞いておるのだ。
2019/06/09(日) 08:13:30.81ID:y15MKF+M0
※わざとです
2019/06/09(日) 08:14:03.36ID:fRZrFeuoa
>>581
a=cells(1,1).value
b=cells(2,1).value

@abc.pdfをオープン
A3p目の左上を起点に左から100、上から50の位置に、8ptで幅20の黒色で、aの内容のテキスト挿入

if b=1 then
B3p目の左上起点の左から200上から300の位置に、黒色の縦10幅10の円を挿入
else if b=2 then
C上記Bの位置違いパターン
endif

この@ABを教えていただきたいです。
2019/06/09(日) 09:04:09.38ID:LJTYegK80
PDF直接作るの超めんどいぞ
Excelで位置確認ずらしていきながら合わせるって方法取ったほうが良い
2019/06/09(日) 09:27:58.90ID:fRZrFeuoa
>>585

マジかぁ
pdfは書式が既にあって、それをまずエクセル化するところからしなくてはならない

excelのセルから抽出し、wordに入力するのも大変?
2019/06/09(日) 09:32:56.69ID:LJTYegK80
>>586
Excel VBAでワードを開く方法がある
https://tonari-it.com/excel-vba-word-application/

wordの細かい所をどこまで触るかによると思う
単純作業なら全然難しくないよ
2019/06/09(日) 09:45:03.10ID:fRZrFeuoa
>>587
ありがとう、ちょっと読み込んでみる

やりたいことは要は、エクセルにずらーっとリストがあって、その内容を、

雇用契約書の穴埋め書式みたいな他のファイル(エクセル、ワード、pdfあり)に展開したい

展開内容はセル内容の挿入と、履歴書の男・女みたいに、○を挿入する形がある
2019/06/09(日) 09:52:34.55ID:Apn2tV9M0
○で囲むのは止めたほうが良い。ずれる
以下のような形に変えれるなら買えたほうが良い。
□男  ?女
2019/06/09(日) 09:53:01.65ID:Apn2tV9M0
文字化けした。
女の左にあるのはチェックマークね
2019/06/09(日) 10:05:38.50ID:fRZrFeuoa
>>589
いや、書式はもう決まってんのよ
変えれるものじゃないんだ

□の方が楽だけどなぁ
2019/06/09(日) 10:07:50.02ID:qEIP4aE00
>>587
参照設定してるのに、CreateObject(“Word.Application”)って何?
2019/06/09(日) 10:11:05.04ID:Apn2tV9M0
>>591
そうか、じゃぁ・・・
頑張って!!
2019/06/09(日) 10:13:10.62ID:47rhBQpmx
>>592
参照設定はあくまで参照先ライブラリの型をインテリセンスや型指定でネイティブに使えるようにするための設定
ワードのアプリケーションのインスタンスを生成しないとエクセルからワードの操作はできない
2019/06/09(日) 10:15:31.89ID:qEIP4aE00
>>594
そういうことじゃなくて、参照設定でその書き方? っていう。
それやると、レイトバインドとアーリーバインド、どっちになるの?
2019/06/09(日) 10:17:10.52ID:qQGT2b0kM
>>593
最終手段はワードとpdfは画像化してエクセルに貼り付けて、そこでマクロるかな…
2019/06/09(日) 10:19:23.94ID:qEIP4aE00
>>594
何か変だと思って試したけど、

こうか
Dim w As Word.Application
Set w = New Word.Application

こうじゃない?
Dim w As New Word.Application
2019/06/09(日) 10:29:49.90ID:47rhBQpmx
>>595
>>597
参照設定したときに参照先ライブラリのクラスについて必ずNewキーワードでインスタンス生成しないといけないという決まりはない

参照設定して変数にワードのアプリケーション型を適用してる時点でアーリーバインドになる
Newキーワードで生成したインスタンスのポインタを変数で受けてもCreateObjectから返ってくるポインタを変数で受けても同じ
2019/06/09(日) 10:36:03.49ID:47rhBQpmx
というか、参照設定時のインスタンス生成にNew使わないと駄目なんて決まりがあったら、GetObjectで他アプリのインスタンス取得して操作したいときはどうなるのって話になるよな
2019/06/09(日) 11:12:20.95ID:wmlwj4f30
>>598-599
わざわざ参照設定してるのにCreateObject(…)するアホがいるとは…
2019/06/09(日) 11:16:29.03ID:Apn2tV9M0
CreateObjectも参照設定もimportだから、どっちか一つでいいんじゃないの?
両方やっても問題ないけど意味はないと思う

あんまリンク内容見ずに貼ってしまった俺が悪いな、すまん
2019/06/09(日) 13:34:23.02ID:IXdTYEKb0
山椒設定はライブラリバージョン古いPCじゃ即フリーズじゃなかったっけ
2019/06/09(日) 13:37:36.61ID:WDGftzb80
配布するなら、参照設定でプログラミングしてテストして、参照設定外して createobject方式にして配布
配布先で参照設定か外れることがまれによくあるので、こうしとくと無難
2019/06/09(日) 15:01:31.22ID:lDRLC8Vq0
>>603
そっすね
2019/06/10(月) 08:22:05.20ID:8u20RjOl0
えー参照設定外れることあんの
まぁいっか・・・・
2019/06/10(月) 08:23:44.80ID:kP6gdt450
参照設定はあまり良い挙動をしない。あと挙動が変な時に発見し辛い
createobject()書いたほうが良い
2019/06/10(月) 08:27:18.33ID:WEjn6M+Ya
>>596だけどpdfを画像に変換し、エクセルに貼り付けて、テキストボックス挿入がクソ楽だった
2019/06/10(月) 09:56:01.81ID:psqZaESWM
ソースファイル(.bas + .cls)配布のときは参照設定はやりづらいからな
2019/06/10(月) 10:07:36.22ID:ul4Aljx5M
>>606
そそ
参照設定外れても、それとは全く関係ない所がエラーになって止まる
枯れたプログラムだったり慣れてくると気づくけど、そうでないと解決に遠回りする
それらも覚えておくべし
610デフォルトの名無しさん (ブーイモ MM3f-nH6h)
垢版 |
2019/06/10(月) 10:20:56.62ID:63YEvEejM
>>606のおっちゃんが、createobject()書いたほうが良い、と書いてるけどなぜ?
2019/06/10(月) 10:45:16.96ID:1PsKpI+e0
参照設定が実はおまかんだから
今のPCで動いてても次の環境や他のPCで動く保証がない

ってことでしょ?
612デフォルトの名無しさん (ブーイモ MM3f-nH6h)
垢版 |
2019/06/10(月) 10:49:13.46ID:63YEvEejM
>>611のおっちゃんが、おまかん、と書いてるけどどういう意味?
2019/06/10(月) 10:55:53.93ID:b1k6Fpi4d
おまえのかあちゃん
614デフォルトの名無しさん (スプッッ Sddb-mek+)
垢版 |
2019/06/10(月) 18:38:27.74ID:Z+X8vlHcd
参照設定までするのにVBAでする必要ある?
なんでそこまで意地になってVBAなんぞに拘るの?
2019/06/10(月) 18:45:40.31ID:kP6gdt450
>>612
お前の環境(が悪い)
スマホゲームで動作が悪い時に言われる事がある
おまかんとかおれかんとか

>>614
全くこだわってないよ
最初から別言語やツールが良ければそれらで作ってる
Excelで99%出来上がってるのにここから戻るってのがありえないってだけ
2019/06/10(月) 19:27:31.99ID:gj8XPCJq0
>>614
VBAスレだし

>>615
それスマホに限った話じゃないよ
2019/06/10(月) 20:45:20.89ID:kP6gdt450
>>616
そうか、スマン
いつから流行りだしたんだろう
2019/06/10(月) 21:38:08.94ID:uF73PSK40
VBAに新機能がつかないのはもう諦めた
でもIDEはもうちょっと進化させるつもりないん?

と思って調べてみたらアドインでなんとかする方法あるんだな
使ってる人いる?
2019/06/10(月) 21:50:15.76ID:kP6gdt450
.NET使えるから最新環境で作成できるぞ
一回試した後は一回も使ってないけど
やっぱファイルと一体化してるのは超便利だ
2019/06/10(月) 21:54:55.45ID:t/PPxU2R0
グラフのプロットエリアの位置が設定出来ん!
ググったら、デバッグプリントするといいよって書いてあったので、
やってみたら、本当に出来た。
何でそんなんでOKなのかワケワカラン。
2019/06/10(月) 21:56:39.67ID:7JqNFjKf0
>>617
DLL HELLならVisualBasicのVBXが元祖だよ
2019/06/10(月) 22:12:08.21ID:fPwYLMuZM
>>618
むしろ開発環境は意図的に使用困難にしていく方向じゃないかな
VBAの実行はできるけどVBEは廃止、どうしても編集したい場合は旧バージョンを使ってね、くらいはそろそろ覚悟しといたほうがいいかも
2019/06/10(月) 22:14:44.52ID:vWR/CKhV0
そんなあほな
2019/06/10(月) 22:18:00.17ID:kP6gdt450
MSとしてはそうしたいのは透けて見えるけど、ここまで広まったものを軌道修正するのはなかなかねぇ
2019/06/10(月) 23:01:58.73ID:vWR/CKhV0
ええ…
代わりになるものがあるならともかく
2019/06/11(火) 01:34:20.54ID:3Y+SR7BCM
代わりはMSがこれまでにいくらでも提供してきただろう
お前が新しいものから目を背け続けてきただけだ
627デフォルトの名無しさん (ワッチョイ 17f1-nH6h)
垢版 |
2019/06/11(火) 01:41:42.71ID:Doe0n0C30
>>614のおっちゃんはVBAをバカにしてるけど
じぁあVABを使わないなら何の言語でするつもりなの?
2019/06/11(火) 04:40:05.71ID:6ros6UsQ0
パワーシェルな
629デフォルトの名無しさん (ブーイモ MMf3-nH6h)
垢版 |
2019/06/11(火) 06:11:13.67ID:RxxCGp6TM
>>628のおっちゃんはパワーシェルと言ってるけど
便利なエディターとかはあるの?
2019/06/11(火) 07:11:21.73ID:Ht7m4b5+M
>>610, >>610
爺お得意のバッドノウハウだから気にしなくていいよ
2019/06/11(火) 07:13:42.88ID:Ht7m4b5+M
>>629
PowerShell ISEでいいだろ
ただ>>628のおっちゃんはまともに使ったことないと思う
PowerShell + Excel って結構色々ハマりポイントあるし
2019/06/11(火) 07:29:09.03ID:3zpWolTP0
たかがファイルの内容編集に
広範なシステムアクセスを行うPowerShellをつかわにゃならんのか?
2019/06/11(火) 07:43:28.02ID:aZcuYhl50
Ruby の方が、バグらないから良い

それに、Rubyスクリプト内で、PowerShell コマンド・スクリプトも実行できるし
2019/06/11(火) 07:53:53.39ID:3zpWolTP0
外部のプログラムと
シェル用にガチガチになったExcelフォーマット別々に扱うのも不便そうだ

ExcelVBAこそオブジェクト指向の体現であったのか
2019/06/11(火) 07:59:35.57ID:CNYfS3si0
>>633
もうすぐ無くなる言語勧めるのやめろ
636デフォルトの名無しさん (ワッチョイ 19db-nH6h)
垢版 |
2019/06/11(火) 08:41:07.88ID:0ljzRX5z0
>>635のおっちゃんはRubyはなくなるみたいなこと言ってるけど
人気じゃないの?Web関連の仕事もRuby案件が一番人気と聞いたこともあるし。
637デフォルトの名無しさん (ワッチョイ 19db-nH6h)
垢版 |
2019/06/11(火) 08:42:51.90ID:0ljzRX5z0
>>631のおっちゃんはPowerShell ISEと言ってるけけど
そんなのどこでダウンロードできるの?
638デフォルトの名無しさん (ワッチョイ 19db-nH6h)
垢版 |
2019/06/11(火) 08:44:36.46ID:0ljzRX5z0
仕事で使うPCにはまず入っているExcel VBAのエディタこそダウンロード不要で汎用性あると思うけど
2019/06/11(火) 08:53:12.26ID:19wxGESzM
入ってる入ってないってそんなに問題か?
2019/06/11(火) 08:55:06.40ID:CNYfS3si0
>>636
一時流行ったし最先端の時期もあったけど、rubyを開発した「まつもとゆきひろ」がサボりにサボって他言語に抜かれまくった
今は全く人気がないし性能も悪い
ただ、保守案件が多少残っているので、ruby使っている人は保守案件をこなしながら他言語を覚えている状態

githubユーザーの割合
https://career.levtech.jp/files/img/guide/knowhow/files/oldthing.png
あくまでgithubのプロジェクト
web開発の主流になっているphpは山程使われている

>>638
テキストエディタと変わらんよ、すっげーしょぼいよ
汎用性ではなく、何も出来ないといったほうが正しい
atomやsublimetext辺り使ってみると分かると思う
2019/06/11(火) 08:56:04.75ID:CNYfS3si0
>>639
金融系とか外部プログラム不可の業種とかあるんだ
最初から入ってるというのは大きなメリット
642デフォルトの名無しさん (JP 0Ha3-nH6h)
垢版 |
2019/06/11(火) 09:09:53.52ID:XOtJ2V1dH
>>639のおっちゃんはニートですね。
会社のPCは2流以下の企業以外はインストール禁止がほとんど。
643デフォルトの名無しさん (JP 0Ha3-nH6h)
垢版 |
2019/06/11(火) 09:14:21.50ID:XOtJ2V1dH
>>640
そうですか
じゃRubyやめよう
PHP勉強する
もともとRubyは糞言語と思ってた
「まつもとゆきひろ」のおっちゃんは開発者によけいな負担をかけさせやがって
2019/06/11(火) 09:39:53.20ID:Qz4IwNRG0
>>640
そのグラフ、みんな下がってるけど今は何が上がってるの?
結局C#とかJava?
2019/06/11(火) 10:00:02.15ID:CNYfS3si0
>>644
https://www.tiobe.com/tiobe-index//
業務用のjava・C系列、機械学習のpython、webバックエンドのPHP・フロントのjs
この辺が固定。特にjavaは強い

明確に上がっているのはSwiftぐらい。iphoneアプリ開発用と思うけどあんまり知らない
2019/06/11(火) 10:17:06.70ID:B3F7PPNQa
>>415
デコレータパターンあたりでググると
幸せになれるよ
2019/06/11(火) 10:43:38.85ID:19wxGESzM
>>641
外部プロクラムなんて金さえかからなきゃ申請して不可になることは少ないよ。
Visual Studioは普通入れられる。
(支店とかは知らんけど。)
>>642
ご愁傷様としか言いようがないね
2019/06/11(火) 10:45:56.60ID:n8XzQGBi0
そもそもVBAが廃止になっら
MSのエクセル使う意味ないわ
365の更新やめるだけ
2019/06/11(火) 11:57:40.02ID:xU3mv9gpd
同じ議論ばっかだなあ。
今までの議論でVBAが一番有利なのは既に何度も語り尽くされてる。
Excel上で余計な申請などせずに、何処でも汎用的に1ファイルで扱えるのはVBAのみ。

汎用実行ファイルの作成の代わりにVBAでやるのはダメだけどね。
殆どの議論が土俵を間違えてる。
2019/06/11(火) 12:05:34.02ID:4lsomSjjx
PowerShell ISEがどこでダウンロード出来るかっていう質問はこのスレを象徴する質問だな
2019/06/11(火) 12:09:42.52ID:xU3mv9gpd
例えばVBAでは無理な処理はC#なんかを使う。
そうすると参照設定が必要になったり、汎用的じゃ無くなったりする。
それは仕方の無いことだ。
けど、上の方で参照設定の議論が出てるけど、上級者で実行時バインディングにする一番大きな理由はコード使用者に参照設定するよう説明を付けなければならない点にあると思う。
ソースコードだけで完結しないのを良しとしないわけだね。

そういう点からするとVBAのコードだけで完結しないのは一歩後退という感じがするわけ。

勿論、処理そのものがVBAでは無理なものは他言語でやるのは当然のことだけどね。
2019/06/11(火) 12:15:57.12ID:xU3mv9gpd
PowerShellは残念ながら殆どメリットになる所が無いと思う。
C#ならVBAではどうにも無理な処理をExcelファイルに統合出来る。
汎用性からは一歩後退するけど1ファイルにはなる。

PowerShellでVBAにはどうにも無理な処理というのがそもそも殆ど思い付かない。
その上、1ファイルに統合出来ない。
正に土俵が違う感じ。
2019/06/11(火) 12:18:02.54ID:CNYfS3si0
PowerShellはIDEがカッコイイ
2019/06/11(火) 12:25:26.93ID:ljnJkqrqM
PS好きだけどこれ以上はスレ違いになるのでやめよう
2019/06/11(火) 12:27:30.71ID:Ht7m4b5+M
VBA がいいのかそれとも PowerShell や C# がいいのかはそれこそケースバイケース
VBA が絶対有利と言い張る ID:xU3mv9gpd みたいな奴がいるから毎回グダグダの議論が繰り返されてるだけ
2019/06/11(火) 12:36:41.02ID:xU3mv9gpd
>>655
ケースバイケースだが有利なのは当然。
土俵を限定した専用言語なのだから。
サクラエディタのマクロはそれ用のjavascriptとライブラリが有利、秀丸には秀マクロが有利なのと同じ。

頑張ればサクラエディタの拡張用にPowerShellで何か書けるかもしれんが、そんなことする奴がいるか?
2019/06/11(火) 12:45:15.15ID:dpwhvyBwM
1ファイルの人を納得させるのは無理なんだから諦めよう
職場のPC環境も今後変わっていくものだしそれを邪魔しないなら後は何でも良い
2019/06/11(火) 12:52:25.86ID:i1dFX3Ob0
>>637
本気で訊いてるの?Vista 以後のWindowsに標準で付いてるよ……orz
2019/06/11(火) 13:05:58.25ID:Ht7m4b5+M
ケースバイケースって書いてるのにまだ有利なのは当然とか言うアホはどうしようもないな…
100歩譲って有利なケースが多いと言うならまだしも言い切る辺り>>657の言うのが正しいんだろう
2019/06/11(火) 13:16:24.61ID:xU3mv9gpd
日本語の分からないアホはどうしようもないな。
有利≠絶対にそうしなければならない。

有利なケースが多いことを有利と言っているのが分からないんじゃ話にならない。
2019/06/11(火) 13:18:02.94ID:xU3mv9gpd
まあ、PowerShellが有利なケースなんて見たことが無いけど。
2019/06/11(火) 13:25:50.47ID:xU3mv9gpd
Excelファイルを作るという場合においてVBAが有利かと言えばそんなことは全く無い。
Excel上で作る場合ぐらいだろう。

VBAが有利になるのはあくまでExcel上から動かすからだ。
土俵を限定しているということはそういうことだ。

そういうことを理解出来ない人が多い。
2019/06/11(火) 13:32:08.53ID:CNYfS3si0
>>662
>Excelファイルを作るという場合においてVBAが有利かと言えばそんなことは全く無い。
え、じゃあ何で作るのが有利なの??
2019/06/11(火) 14:29:17.02ID:xU3mv9gpd
>>663
その処理を実装する言語でしょう。
Excel上で実行しないなら、例えばPowerShell上で某かの処理を実装し、その中でExcelファイルを作成したいならPowerShellで実装すべきでしょう。
Rubyで某かの処理を実装し、その中でExcelファイルを作成したいならRubyになるでしょう。

VBA以外の大抵の場合、Excelファイルがメインなのでは無く、某かの処理がメインでしょう。
2019/06/11(火) 14:42:09.50ID:19wxGESzM
なんで「ファイルを作る」話になってるの?
2019/06/11(火) 14:58:57.67ID:xU3mv9gpd
>>665
他言語を主張する人は、自分目線でそういう土俵を考慮しない人が多いという話。

ここはExcelVBAのスレだから最初からExcel上で実行することが前提になってるし、最初からの単体実行ファイルや単体実行スクリプトに比べてExcelが介在しない点について汎用的でないことが前提になっている。
(VBAでExcelファイルとは無関係な汎用処理を実行させることは可能でも、その点で有利を主張する奴はいない)

そういう前提である以上、他言語との比較では他言語はExcel上で実行する立場で有利不利を論じなければならないからVBAが有利なのなんて当たり前でしょ。
そもそもがVBAが有利な土俵なんだから。
2019/06/11(火) 15:01:30.73ID:xU3mv9gpd
VBAの場合、Excel上でファイルを作るのが前提。
他言語でよくやられてるExcel上では無い所でExcelファイルを作るというのはVBAからすると最初からスレチになっている。
2019/06/11(火) 15:55:42.70ID:19wxGESzM
それファイルを「作る」って表現でいいの?
2019/06/11(火) 15:59:33.33ID:CNYfS3si0
>>664
RubyでExcelインスタンス作るとか、処理が例外的すぎるだろう
そんなニッチな場合なら何でやってもいいのは言うまでも無いしそれをわざわざ中心に語る君は相当変だよ
2019/06/11(火) 16:35:21.06ID:ieltZnTNM
>>668
普通は作るとは言わない
バカが踊り狂ってるのを冷ややかな目で見てるのがよろし。(またはNG行き)
2019/06/11(火) 16:37:00.61ID:3mSrEt3uM
まあでもお前らもExcelに組み込まれてなかったらこんなクソ言語使わないでしょ?
2019/06/11(火) 16:59:33.14ID:CNYfS3si0
>>671
当たり前だろwww
673デフォルトの名無しさん (ワッチョイ 5d8e-KhuK)
垢版 |
2019/06/11(火) 18:22:06.08ID:ZxhAChx00
言語が糞より開発環境が糞だな
674デフォルトの名無しさん (スプッッ Sdf3-mek+)
垢版 |
2019/06/11(火) 18:44:56.74ID:9ACOiOQ8d
1ファイルならVBAってのは理解出来る
外部参照までするのにVBAってのはなんで?ってなる
余計なのがあるから渡される方も怪しむ
2019/06/11(火) 19:14:52.05ID:Ht7m4b5+M
>>660
> 有利なケースが多いことを有利と言っている
お前はまず日本語の勉強からしろよw
2019/06/11(火) 19:16:53.80ID:Ht7m4b5+M
>>671
クソとまでは思わないけど最近のモダンな言語に比べたらちょっと面倒だなって思うことが多いわな
2019/06/11(火) 19:19:42.90ID:Ht7m4b5+M
>>674
だからケースバイケースだって言ってるでしょ
測定器から読みだしたデータから簡単なレポート作るならVBAがいいケースもある
その際に測定器とのやり取りのためにメーカー提供のDLL参照するとか
2019/06/11(火) 19:59:10.49ID:rWuED7QnF
>>675
それを言うなら「有利なケース」が既におかしい。
最適なケース、もしくは適したケースが正しいだろ。

お前の>>659に合わせたらそうなっただけだよ。
2019/06/11(火) 20:08:00.11ID:xU3mv9gpd
>>669
そうじゃなくて、ここは汎用言語じゃ無いVBAのスレだから比較するならVBAで想定されている利用に限ると言っている。
それ以外で比較しても意味が無い。

だからVBAの土俵に合わせて貰わないとな。
汎用言語としてVBAを使うという話ならVBAが優れているなんて言う奴はいない。
2019/06/11(火) 20:09:58.13ID:xU3mv9gpd
Excel上でExcelファイルを作るならVBAが有利だし、そうじゃ無いなら想定外。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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