Excel VBA 質問スレ Part57

■ このスレッドは過去ログ倉庫に格納されています
2018/09/10(月) 21:42:39.57ID:K1uuwFLt
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part56
http://mevius.5ch.net/test/read.cgi/tech/1534976724/
2018/09/18(火) 08:05:31.56ID:RfbXDeCO
WPFはデータとプログラムソースを完全分離出来るからな
VSさえ自由に使えるなら安全で良い
2018/09/18(火) 08:14:28.81ID:/U1cQ/02
働いたこともないニートだったか
2018/09/18(火) 08:34:54.62ID:NAn2Eeof
自己紹介乙
2018/09/18(火) 08:53:19.81ID:RfbXDeCO
働いたことがないニートなのはこのスレの参加条件だからニート歴の年数で勝負すべき
2018/09/18(火) 09:11:00.17ID:6gy5jGhe
>>163
言語として使いやすいから、とか
2018/09/18(火) 12:06:42.40ID:oc0rxGPX
>>168
その皮肉はちょっとよくわからない
2018/09/18(火) 12:13:47.72ID:PpRa0G4r
面白いギャグだね
2018/09/18(火) 12:16:08.60ID:/U1cQ/02
>>163
君の作ったのがExcelの完全上位互換でもない限り、上司からセルの色が変えられないとか関数が使えないとか言われるのがオチ。

ニートの意味プログラムの世界では成立するかもね。
172デフォルトの名無しさん
垢版 |
2018/09/18(火) 12:22:42.63ID:Xx2CgWoL
そもそもエクセルの使い方わからんプロさん達やし致し方ない
2018/09/18(火) 12:34:01.22ID:PpRa0G4r
>>171
そういうエクセルを使うことが目的になってる残念上司にはエクセルをエクスポートして渡しておけばいいよ
こっちはあくまで生産性上げるためにやってるわけだからね
もちろん色を変えることにビジネス上の合理性があるなら実装するがね
色を変えて遊びたいだけじゃ話にならん
2018/09/18(火) 12:51:14.99ID:/U1cQ/02
>>173
それだったらExcel使う必要無いわけだ。
上司や社長にそう言ってみれば良いんじゃね。

色だけの問題じゃねえっての。
完全上位互換で気付かないかねえ。
だから二―トと言われるんだぞ。
2018/09/18(火) 13:59:55.38ID:oc0rxGPX
自分から具体的な事を言わずに相手の反応を待つ方法、
馬鹿が頭良く見せる時によくやるけどその内相手にされなくなるよ
2018/09/18(火) 15:33:00.72ID:6gy5jGhe
>>169
2018/09/18(火) 19:05:07.35ID:7cRL6s2e
初心者の典型的な勘違いだね
「なんでも出来る方が良いに決まってる」
でも、実際には逆なんだな

例えば標準エクセルの完全上位互換なら、すべてのセルの色を変えれることになるが
そうすると色を変えてほしくないセルまで変えてしまう人が現れる
色だけじゃなく、ありとあらゆる機能について似たようなことが言える
先人たちは失敗に学び、なんでも出来るツールよりも、僅かな仕事を上手くやるツールを組み合わせたほうが良い、という答えにたどり着いた

事務員のみんなは、学ぶべき先人が居ない環境でプログラミングを覚えてきた
だから、こういう基本的なことが身につかないままの人が多いんだ
2018/09/18(火) 19:09:22.99ID:/U1cQ/02
>>175
あれあれ?
「関数が使えない」を無視した上に、「完全上位互換でもない限り」の文意を読み取ろうともせずに「具体的なことを言わず」と相手を批判ですか?

何でも全て自分は悪くないですか。
そうですか。
2018/09/18(火) 19:10:47.69ID:/U1cQ/02
>>177
それじゃ既に誰もExcel使ってないっての。
ところが現実は違う。
2018/09/18(火) 19:22:55.63ID:7cRL6s2e
>>179
それだけリテラシーの低い人が多いということ
多数派が賢いというのも典型的な勘違いの一つだね
181デフォルトの名無しさん
垢版 |
2018/09/18(火) 20:11:57.47ID:WcZLZMlj
セル内の文字列をコピーする際、セルごとコピーしようとしたら、余計な情報までコピーするからやめろといわれた。本当ですか?
2018/09/18(火) 20:14:47.13ID:uHQ14XDu
>>181
コピペのやり方とどこに貼り付けるか次第かなー
2018/09/18(火) 20:38:53.34ID:dgXQ4G2s
>>181
値貼り付けならまぁなんとか
コピーしてそのまま貼り付けは鬱陶しいな
2018/09/18(火) 21:38:06.78ID:NAn2Eeof
書式貼付けとか出来るようになったのは嬉しいけど罫線そのままフォントとか背景色をコピーとかしたいわ

要望に限りはないな…
2018/09/18(火) 22:18:22.89ID:J2IpRlny
>>184
コピー元のセルとコピー先のセルをそれぞれRange型変数に格納して、あとはコピー元の任意のプロパティの定数値をコピー先のプロパティの値としてそのまま代入するだけ
2018/09/18(火) 22:25:10.68ID:dgXQ4G2s
>>184
罫線だけ貼り付けあるで
2018/09/18(火) 23:02:58.12ID:/U1cQ/02
>>180
???
多数派が賢いとは言ってない。
そもそもの話から理解出来ないなら引っ込んでろよ。

会社は君一人だけで成り立っているわけじゃない。
188デフォルトの名無しさん
垢版 |
2018/09/18(火) 23:05:19.45ID:oE0uJFU6
なんかVBAできる程度でイキってる低学歴知恵遅れがいるのか
2018/09/18(火) 23:12:46.57ID:/U1cQ/02
独りよがりの二―トならいるが。
190デフォルトの名無しさん
垢版 |
2018/09/18(火) 23:19:04.19ID:3Z5SLW4f
vba出来なくてイキられとるプロさん達w
2018/09/18(火) 23:32:08.88ID:dgXQ4G2s
>>188
そりゃ事務作業がほぼ0になるんだからイキってもいいよ
2018/09/18(火) 23:57:53.79ID:J2IpRlny
VBAは作ってからが本当の地獄だぞ
2018/09/19(水) 06:01:57.35ID:S2C8yCMr
おっと野田工房さんの悪口はそこまでだ
https://qiita.com/nodakoubou/items/1c92d33855cfd09ccc57
194デフォルトの名無しさん
垢版 |
2018/09/19(水) 06:47:53.78ID:wCu+CcEF
office.tanakaのコードには俺も前から疑問持ってた。vbaにクソコードが多い原因とまで言っちゃうのはちょっと言過ぎだが。
vbaの場合、入門書にロクなのが無いってのが大きいと思う。
2018/09/19(水) 08:11:46.01ID:3pMh17++
少なくともオブジェクトが解放されてないとか文句言ってるのは別言語に移行すれば解決するな
2018/09/19(水) 08:16:58.74ID:Q3mSx79m
他人のせいにしちゃいかんな
モダンな文法や機能の導入
Excel.Applicationのインターフェース改善
洗練されたIDEの導入
これらを怠った結果でしょう
特にIDEの影響が大きいと見たね
インテリセンス、サジェスチョン、ワーニング、リファクタリングツールが充実してると大分変わる
2018/09/19(水) 08:27:16.54ID:qT/e110f
すくなくともVBEは変えるよな
素人マクロじゃなくて業務開発ならば
2018/09/19(水) 08:30:56.76ID:LVCMaoiR
>>163
それでもスレに来るのは何なの
2018/09/19(水) 09:05:12.30ID:eB9Wvzp/
>>198
とにかくVBAをけなして自分のチンケなプライドを満足させたい、その一点のみ w
2018/09/19(水) 09:07:56.31ID:hRx0sgGQ
啓蒙してユーザー需要を減らせれば、皆がハッピーになると信じている…のかも
201デフォルトの名無しさん
垢版 |
2018/09/19(水) 11:59:42.56ID:9eFLiOtU
暇つぶしの問題
あるセルとその下のセルに数値データが入っている
この2つのセルの中身を他のセルを使わずに入れ替えてください
2018/09/19(水) 12:11:03.24ID:3D7E1PKU
○○では××できない!糞!って騒ぎ立てることで
いや○○でもこうすれば××できるんやでという回答を引き出すメソッドや
2018/09/19(水) 12:13:54.07ID:3D7E1PKU
なおVBAの場合ほんとにできないのであまり効果的でない模様
2018/09/19(水) 12:39:07.72ID:f2RidzcJ
>>201
Dim Rng_Target As Range
Dim Val_Target As Long

Set Rng_Target = 目的のセルを取得するexpression
Val_Target = Rng_Target.Value
Rng_Target.Value = Rng_Target.Offset(1, 0).Value
Rng_Target.Offset(1, 0).Value = Val_Target
2018/09/19(水) 18:17:37.52ID:r5xYEE0l
If Not RangeA Like RangeB then
RangeA = RangeA Xor RangeB
RangeB = RangeA Xor RangeB
RangeA = RangeA Xor RangeB
End If
2018/09/19(水) 18:40:15.75ID:AVetNhWj
xor交換て数値型全部に使えるんだっけ
2018/09/19(水) 18:41:10.33ID:5nElZyy0
>>198
確認だけど日本語は読めるよね?
VBAの使い道を探してるって書いてあるけど見えなかったのかな
2018/09/19(水) 18:52:28.00ID:0/ft7j2l
>>207
いや、必要もないのに探す意味がわからないし
暇なの?
2018/09/19(水) 18:58:31.13ID:5nElZyy0
>>208
ん?
高い金出して買ったExcelを使いこなさなきゃもったいないだろ
2018/09/19(水) 19:21:40.70ID:0/ft7j2l
>>209
プライベートで有効に活用できないかってことね
趣味にもよるしなあ
211デフォルトの名無しさん
垢版 |
2018/09/19(水) 23:25:17.18ID:J1A7PsDE
プロも実はエクセル使えないの悔しいんやなwプロさんのくせにw
212デフォルトの名無しさん
垢版 |
2018/09/19(水) 23:28:02.58ID:xLP4ypV2
プロはセルで関数つかっても
vbaはつかわない
2018/09/19(水) 23:34:32.23ID:f2RidzcJ
ワークシートでユーザー定義関数使いたいときはVBA使う
2018/09/19(水) 23:47:39.17ID:3pMh17++
>>193
なんやかんや言いつつ文句の対象がVBAだけなの草
2018/09/20(木) 00:20:27.12ID:EYF8wRp8
頭の悪い人がVBA覚えると数式でも工夫すればできることもVBAでやろうとするよね
VBAは所詮「実行できる操作手順」だから、慣れてしまえば頭が弱くても分かりやすい
数式の方が論理的な思考が必要で突き詰めれば難しい
2018/09/20(木) 00:23:10.21ID:5+Hsdig+
ハイハイ偉い偉い
2018/09/20(木) 00:37:45.52ID:grTR8BoD
まるでVBAで数式を表現できないみたいじゃないか
変なこというヤツだな
218デフォルトの名無しさん
垢版 |
2018/09/20(木) 00:41:53.76ID:zLqp8E23
むしろ数式の途中結果を使いながら何列もつかって最終結果にたどりつく
途中で確認するからな
複雑な数式を一行やろうとなんか考えない
2018/09/20(木) 01:26:44.94ID:SZObeV+C
語彙力、たぶん関数って書きたかったんだろ
2018/09/20(木) 01:42:01.91ID:iN76uuvx
VBの組み込み関数とワークシート関数のどっちの話をしてるんだか
2018/09/20(木) 05:12:33.95ID:We2hiCPZ
Visual Basic Editorは20年前に発売されてとっくに引退したVB6のIDEの流用?で
なぜか20年間全く変わらないままだな、もうアホかと

Visual Studioで言うところの「すべての参照の検索」ぐらいできないと不便でしょうがない
2018/09/20(木) 08:13:11.22ID:nFH62DW3
そりゃMSにとってはVBAはもはやレガシーもいいとこであり滅ぼしていきたいものだからだ
君の愛する Visual Studio にも昔はExcel VBAと同様にCOMオートメーションによるマクロ機能とその専用開発環境が付属してたけど、いつの間にか消えただろ?
完全に時代遅れの死んだ技術なんだよ
Excel VBAを削除したら大量の自称プロが露頭に迷って電車のダイヤに多大な影響が出るから踏み切れない、
でも車内のポリシー的にレガシー技術への新規投資はできない、というわけで放置するしかないわけ
2018/09/20(木) 11:47:27.86ID:lix+OrrW
プロなんてものの数に入らないだろう
圧倒的に多いのは一般のオフィスワーカー
なくなったらむしろプロの側はビジネスチャンスじゃん
224デフォルトの名無しさん
垢版 |
2018/09/20(木) 12:03:27.50ID:xZtTWzui
質問です

タブ区切りtxtファイルを複数読み取り,指定の場所に貼り付けるVBAをMacOS上で制作したいのですが,ファイルパスの仕様?などの関係でうまくいきません

どなたかMacOSでのVBAに詳しい方はいらっしゃいませんか?
2018/09/20(木) 12:07:06.97ID:liPfzeAw
>>224
まずコードを貼れよ。話はそれからだ
226デフォルトの名無しさん
垢版 |
2018/09/20(木) 12:24:51.29ID:xZtTWzui
>>225
恥ずかしながら,コードはまだ完成していないのです.
そもそも他ファイルの読み込みすらままならないので・・・

練習として,同じフォルダ内にあるEXCELファイル(Sample.xlsx)を開くだけのコードを描いてみたのですが,それすらうまく回りません.
同様のコードでwindowsでは問題なく回ったのですが・・・

Sub Sample()
 Workbook.Open Filename:=ThisWorkbook.Path & "./Sample.xslx"
End Sub

この問題の解決法から教えていただけるとうれしいです.
初心者で右も左も分からず,基本的な質問になってしまい申し訳ありません
2018/09/20(木) 13:02:40.95ID:liPfzeAw
>>226
ドットが不要。マックは知らんけどWindowsは本来パスはバックスラッシュ、拡張子はxlsxな
2018/09/20(木) 13:09:09.59ID:SZObeV+C
今開いているファイルが
/boot/hoge/fuga.xlsm
だとして同じ階層の
/boot/hoge/Sample.xlsx
を開きたいなら
相対指定では../Sample.xlsx
.ではだめ。
2018/09/20(木) 17:49:38.92ID:lix+OrrW
グローバルなRangeプロパティへの参照を機械的に検知するアイディア
https://qiita.com/nukie_53/items/4e9226ac8f747e772afd

なるほどこの発想はなかった
2018/09/20(木) 18:03:18.90ID:hYohggeS
>>222
むしろプロは喜ぶね
Vbaそのものが目的化してるアマチュアのほうがきついんちゃう?
2018/09/20(木) 18:30:13.49ID:5eDdLMhs
VBAが使えるのを売りにしてる事務員は多いからね
さすがにそろそろVBEは標準では付属しなくなって、
MSのサイトの分かりにくい場所から別途ダウンロードが必要になるくらいの弾圧施策は打ってくるんじゃないかな
2018/09/20(木) 18:36:30.44ID:49SYfM/r
事務員にそんなもの期待してない
2018/09/20(木) 19:29:49.01ID:lix+OrrW
冷静に考えたらプロは喜ばないか
営業が喜ぶかもしれないってだけだな
2018/09/20(木) 20:28:39.42ID:qGj9TL9d
>>222
2019にPythonが実装されるという噂だが…
結局COMやらないと駄目、ってなったら旨味がほぼゼロ。
Excelが.NETに完全対応するんならVBAとか今すぐ無くなっていい。
2018/09/20(木) 21:44:20.01ID:MjJalB6Y
>>234
ん?
Excelに搭載するならVBA並みに使えるようにするだろ
COMで使うなら今でも使えるし
2018/09/20(木) 21:59:37.62ID:whO82xMw
マルチプラットフォーム、クラウドに注力してるのに
わざわざローカルのOSベッタリの技術にリソースは割きたくないでしょ

というかVBAの前にIEが消えると思う
2018/09/20(木) 22:42:00.54ID:oVrOG/N2
IEはガチのオワコンだからしゃーない
2018/09/20(木) 22:54:11.74ID:tLKfXY5t
>>234
そんな噂はねーよ
とっくの昔に否定されてる
239デフォルトの名無しさん
垢版 |
2018/09/21(金) 01:31:15.05ID:MqKbhYRD
ところがここだけの話そうでもないんだよねーあんまり詳しくは言えないけどね
2018/09/21(金) 02:38:37.17ID:ITZv+Gmc
>>239
負け惜しみ言ってるんじゃねーよ、死ねよ
2018/09/21(金) 09:35:36.97ID:mvgA0QsA
どんなのが搭載されても関係無いだろ。
それに合わせるだけだ。
逆に待ち望んでた奴らはまたコレジャ・・・がダメとか言い出すんだろう。

結局今と変わらない。
自分の能力の低さを言語のせいにするような奴らなんだから。
2018/09/21(金) 16:53:09.50ID:Qvv9rksr
事務仕事でVBA使えると業務効率すごく良くなるの?
作業自動化とか見て心がわくわくするけど、うちの会社誰もVBA使えなくていまいちどんな感じなのか想像できない
2018/09/21(金) 17:42:59.81ID:CSX4ORRK
>>242
自分でやってるExcelの仕事を、この部分を自動で出来たらどうなるかって考えてみたらよろしいやん。
出来るところ出来ないところ色々あるだろうけどさ。
244デフォルトの名無しさん
垢版 |
2018/09/21(金) 17:54:42.09ID:r3aTV2Xy
まだ始めたばったりで基本もまだまだだけど、実際の業務で自動化できそうな簡単な課題を考えて試行錯誤してるんだけどこんな感じで身につくかな?
2018/09/21(金) 17:56:20.06ID:xQShnEjp
>>242
今からやるならdotnetやpythonがいいよ
どの言語でもエクセルを処理できる
業務はエクセルだけじゃない
だからどうせなら簡単で色々できてパワフルな別の言語を使ったほうがいいというわけ
2018/09/21(金) 18:04:23.10ID:liVyxOie
メモ帳でC#組めるし.NETはオススメだね
2018/09/21(金) 18:06:59.84ID:2TZ1ouJm
VBAスレまできてPythonのステマとか
やっぱりPython信者は一味違うな
2018/09/21(金) 18:11:58.90ID:mvgA0QsA
dotnetもpythonもExcel上で使うには力不足。
VBAが一番都合が良いんだね。
2018/09/21(金) 18:16:59.14ID:xQShnEjp
エクセルはビジネスのごくわずかな領域でしかない
なのでエクセル依存のVBAはビジネスではイマイチなんだね
2018/09/21(金) 18:29:31.75ID:liVyxOie
やっぱり.NET、Python、PowerShellで決まりだよ
2018/09/21(金) 18:33:05.98ID:MQAmc69g
ユーザー定義ワークシート関数作れるようになってから出直せ
2018/09/21(金) 18:35:03.52ID:uQKWYjQl
>>242
凄く良くなるかは分からん
業務の種類と自分が出来る自動化のスキルによる
うちはシステム化ダメダメだったから日報を2時間掛けて作ってたらしいそれを2分で出来るようにした
土日も作ってるらしいからそこそこになった
253デフォルトの名無しさん
垢版 |
2018/09/21(金) 18:40:23.75ID:Qvv9rksr
なるほどー。普段の業務考えてみたらルーチン作業ばっかしてるし自動化できそう


>>252
まさにそんな感じで日報も作ってるわ。部署ごとにわけて〜で2時間は余裕でかかってる
これがもし2分で終わったりしたら夢あるなぁ
2018/09/21(金) 18:44:00.14ID:liVyxOie
C#あたり使ってVBEのコードペインにユーザー定義関数用のVB6コードを差し込むようにすれば大丈夫だと思うの
2018/09/21(金) 18:46:12.21ID:MQAmc69g
>>254
で、そのファイルは他の人が開いたらどうなるんや
2018/09/21(金) 18:50:57.60ID:liVyxOie
ブックのコードペインに差し込んでスタンドアロンなVBAプログラムとして保存すれば他のユーザーがそのブックを開いても普通に関数として使えるじゃん
2018/09/21(金) 18:56:13.68ID:xQShnEjp
>>251
何に使うの?
ユーザー定義関数を定義する事が目的化してない?
2018/09/21(金) 19:01:09.32ID:MQAmc69g
>>257
標準関数で書くと低速になるような式のとき、VBAに移す事で大幅に高速化できる。
必要になった時にその場で作るものだから、c#の場合VS起動してコンパイルしてとか論外。
その後、計算書完成したから後よろしくって上司に渡すとかよくある
2018/09/21(金) 19:17:25.97ID:FvpQrvJK
計算書なんて何度も計算するものじゃないだろ?
それに経過の計算を残すことが重要な書類じゃないのか?

無意味に速度なんて気にして誰も解読できないオナニー関数とか使うなよハゲ
2018/09/21(金) 19:22:37.61ID:xQShnEjp
え?それだけ?
定義した関数をデリゲートとして渡してコレクションをソートしたり
メタデータを取得してデコレーターを生成したり
再利用可能なモジュールとしてシステムに登録したり
とかできないの?
使い捨てのシートに表示するのを高速化するだけのために重いエクセルとVBEを開いてVBAで我慢強くコーディングして動作確認とか辛いんですけど
2018/09/21(金) 19:30:10.67ID:liVyxOie
必要になったときに手軽に使うのはPowerShell
2018/09/21(金) 19:31:16.07ID:MQAmc69g
そういうのが作りたいなら好きにしてくれ。
VBAが適している場面もあるって話や
あと数秒で計算終わるなら必要ない。物によっては諸元入力のたびに再計算に1分かかる場合とかあるんよ。
エクセルエアプには分からなくても仕方がないが。
2018/09/21(金) 19:35:55.04ID:FvpQrvJK
どうせSUMPRODUCTとか使いまくって悦に浸ってんだろ
エクセルプロ()さんは凄いですね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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