Excel VBA 質問スレ Part56

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2018/08/23(木) 07:25:24.98ID:Kh3D3mRW
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part55
http://mevius.5ch.net/test/read.cgi/tech/1532236398/l50
2018/08/27(月) 00:15:43.23ID:uGiTpI0n
自尊心保つの大変そうだなあ
332hoge
垢版 |
2018/08/27(月) 00:18:03.80ID:rO/r14zS
>>323
PowerShellerなんかに褒められて、わ〜い♪褒められた〜♪と内心喜んでる俺がいる。
が、それは置いといて俺のVBAは準備含めて30分くらい。
(32行に収まらなくて調整するのに10分くらいかかったけども)
2018/08/27(月) 00:20:11.68ID:0VuCVsh0
>>326
Winapi入門的な本やサイトでありがちな初心者用の練習課題ってとこかな
2018/08/27(月) 00:22:49.76ID:uGiTpI0n
>>330
そもそもお前が勝手に問題作ったらお前が書いたコードかどうかも怪しいんだよ
そんなこともわからんのかコードが書けないスキルの無い奴は
2018/08/27(月) 00:25:28.83ID:e5NQDqcO
>>332
君がPowerShellerじゃ無いのか?
「VBAerの人頑張って最適化して?」とか
「やりたい命令がちゃんと用意されてるのはいいなぁ。」とか書いてるし。

それとも、まんまとPowerShellerの口車に乗せられて、コード書いたんか?
2018/08/27(月) 00:27:32.81ID:e5NQDqcO
>>334
だったら、もっとおもしろいお題を出すんだな。

それに、コード晒さなくてもこれまでの言動からすぐ分かるだろ。
2018/08/27(月) 00:29:24.09ID:uGiTpI0n
>>336
たしかにわかるな
口先だけの奴だってなwwww
2018/08/27(月) 00:29:43.53ID:e5NQDqcO
>>334
というか、こんなこと書くからレベルがすぐ分かる。
2018/08/27(月) 00:31:39.75ID:e5NQDqcO
>>337
お前が碌に書けないのはすぐ分かる。

スキルのある奴なら>>317を読めば最低でも多少は書ける奴だとすぐ分かるんだよ。
340hoge
垢版 |
2018/08/27(月) 00:31:43.24ID:rO/r14zS
>>335
生粋のVBAerだけど素人なので、仕事で使ってるVBAer任せた!ってつもりなのでした。
昼食後の昼寝前に暇だったから、誰も投稿しようとしないコードを上げたらどうなるのかなと・・・
口車に乗せられたってのは間違いないかもね!
2018/08/27(月) 00:33:43.59ID:0VuCVsh0
これまでの言動から初心者レベルのWinapiを使った面白(?)アプリで有頂天になれる強い自尊心の持ち主ということはわかりました
どんな苦境でも前向きに物事を考えられるその人間性はとてもスゴイことだと思います
2018/08/27(月) 00:34:57.16ID:e5NQDqcO
>>333
悔しいのかもしれんが、つまらんお題を出した自分が悪いんだよ。
2018/08/27(月) 00:36:26.47ID:rO/r14zS
>>340
あああわわわ・・この表現だと仕事で使ってないみたい。
会社でコソっと使ってるけど、これで御飯食べてるわけじゃないのでバリバリ使ってる人ならと・・・
2018/08/27(月) 00:39:17.06ID:e5NQDqcO
結局、PowerShellは大したことできんと証明するようなお題なんだからな。

大したことできるというお題だって提示できた筈なんだ。
それでも、VBAじゃやらない処理だという反論も出来る場合もあるだろう。
でも、俺が見てもどうにもならんからそれだったらC#でやるというものもある。
2018/08/27(月) 00:42:48.53ID:TXKBjdm9
>>340
あなたのコード見ていっちょrubyでも書いてみるかってなったから先陣を切ったのは偉い
素人でもなんでも実際に動くコードが良いコードだ
2018/08/27(月) 00:45:26.56ID:73yCiJDJ
outlookのマクロはここでええかの?
2018/08/27(月) 00:46:16.71ID:0VuCVsh0
>>345
確かに偉い
言い訳ばかりでなんにもコード書かないくせに自信だけはたっぷりの勘違いくんに爪の垢を煎じて飲ませてあげたいね
348デフォルトの名無しさん
垢版 |
2018/08/27(月) 00:47:37.11ID:wSgDz8cK
>>329
おいお前、Export-Excelを使う方法を教えろ
Windows 7、PowerShell 4だ
2018/08/27(月) 00:49:45.70ID:0VuCVsh0
>>348
https://github.com/dfinke/ImportExcel
350hoge
垢版 |
2018/08/27(月) 00:49:47.79ID:rO/r14zS
>>348
あ、私も知りたい。
自信満々に上げてくれた>>90を検証したいのにエラー出てくる。
こっちはWindows 10だ
351デフォルトの名無しさん
垢版 |
2018/08/27(月) 00:50:38.17ID:wSgDz8cK
なんか派閥が形成されててキモい
自分以外は全部敵だと思え、馴れ合う君たちに価値などない
352デフォルトの名無しさん
垢版 |
2018/08/27(月) 00:51:36.40ID:wSgDz8cK
>>349
その箇所を引用しろハゲ、横着すんな
2018/08/27(月) 00:55:17.33ID:rO/r14zS
>>352
そこまではわかった。
ダウンロードしたフォルダで>>90を実行すると、こうなるけどどうしたらいいの

PS C:\Users\hoge\Downloads\ImportExcel-master> gci . -Recurse -Filter *.csv | % { ipcsv $_ } | % { $_ | Add-Member -Pass
Thru -MemberType NoteProperty D ([math]::sqrt([math]::pow($_.X, 2) + [math]::pow($_.Y, 2) + [math]::pow($_.Z, 2))) } | S
ort-Object D -Descending | Export-Excel -Now
Export-Excel : 用語 'Export-Excel' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前とし
て認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、
再試行してください。
発生場所 行:1 文字:221
+ ... th]::pow($_.Z, 2))) } | Sort-Object D -Descending | Export-Excel -Now
+ ~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Export-Excel:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
354デフォルトの名無しさん
垢版 |
2018/08/27(月) 00:56:47.08ID:wSgDz8cK
>>353
あ、わかったんだナイス
2018/08/27(月) 00:57:25.56ID:0VuCVsh0
>>353
CommandNotFoundException
https://github.com/dfinke/ImportExcel
356デフォルトの名無しさん
垢版 |
2018/08/27(月) 00:59:49.33ID:wSgDz8cK
>>355
だからお前がどうやったのかを言えや
2018/08/27(月) 01:00:55.38ID:rO/r14zS
>>354
>>355
わざわざExport-Excel.ps1の入ってるフォルダで>>90を実行しているのにコレが出るから悩んでいる。
dllみたいにsystem32へ保存しないとダメとかなんかルールあるんけ?
2018/08/27(月) 01:03:11.91ID:0VuCVsh0
>>356,357
https://github.com/dfinke/ImportExcel



README.md
2018/08/27(月) 01:05:41.25ID:YJAIAvBs
急にリンク貼るだけのコミュ障になったなコイツ
ただのクズか
2018/08/27(月) 01:17:54.97ID:kP3VgsYY
そこに書かれてる
Install-Module ImportExcel -scope CurrentUser
を実行するとこんな感じだった。
---
PS C:\Users\hoge> Install-Module ImportExcel -scope CurrentUser
続行するには NuGet プロバイダーが必要です
PowerShellGet で NuGet ベースのリポジトリを操作するには、'2.8.5.201' 以降のバージョンの NuGet
プロバイダーが必要です。NuGet プロバイダーは 'C:\Program Files\PackageManagement\ProviderAssemblies' または
'C:\Users\hoge\AppData\Local\PackageManagement\ProviderAssemblies'
に配置する必要があります。'Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force' を実行して NuGet
プロバイダーをインストールすることもできます。今すぐ PowerShellGet で NuGet
プロバイダーをインストールしてインポートしますか?
[Y] はい(Y) [N] いいえ(N) [S] 中断(S) [?] ヘルプ (既定値は "Y"): y

信頼されていないリポジトリ
信頼されていないリポジトリからモジュールをインストールしようとしています。このリポジトリを信頼する場合は、Set-PSReposit
ory コマンドレットを実行して、リポジトリの InstallationPolicy の値を変更してください。'PSGallery'
からモジュールをインストールしますか?
[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ (既定値は "N"): y
PS C:\Users\hoge>
2018/08/27(月) 01:20:34.40ID:KKIFZoE3
Installationぐらい読めよ
2018/08/27(月) 01:20:51.76ID:kP3VgsYY
Export-Excel.ps1のコードなげえなあ
https://github.com/dfinke/ImportExcel/blob/master/Export-Excel.ps1
363デフォルトの名無しさん
垢版 |
2018/08/27(月) 01:26:56.53ID:wSgDz8cK
>>357
Install-Moduleはオンラインギャラリーからインストールするもので


ローカルのモジュールをインストールするのは↓これでいけるかも

about_Modules
https://technet.microsoft.com/ja-jp/library/hh847804.aspx

モジュールのフォルダを自分で作って
そこにモジュールを放り込んで
Import-Moduleやるみたいよ
364デフォルトの名無しさん
垢版 |
2018/08/27(月) 01:27:16.96ID:1GtV5xun
c;\aaa\bbb\ccc.xls
c;\aaa\AAAAAAA\cccaaaa.txt
みたいに
二つ目のフォルダの階層だけを取得したい場合
どうすればいいのでしょうか?
上記ならbbbとAAAAAAAです

StrReverse関数はあくまでも右から見て最初の\以降しか取れません。
365デフォルトの名無しさん
垢版 |
2018/08/27(月) 01:30:06.85ID:wSgDz8cK
>>361
それでわかるわけないだろ、品川に行くにはと聞いてる人に関東だと答えてるようなもんでしょうが
366デフォルトの名無しさん
垢版 |
2018/08/27(月) 01:30:57.18ID:wSgDz8cK
久しぶりにVBAのまともな質問が
2018/08/27(月) 01:37:50.69ID:kP3VgsYY
split して配列にぶち込んでArr[2]を参照
2018/08/27(月) 01:38:48.56ID:rO/r14zS
とりあえず、ps1は絶対パス指定じゃないと動かないらしいことがわかったので
フルパス指定したら先のエラーは突破できたけど、どこのフォルダに保存されたcsvも
>ファイル 'C:\test\1.csv' が見つかりませんでした。
って出て読み込んでさえくれない。

>>363 の方法でなんかすれば動くのかな・・・
とりあえず今日は諦めるわ
369デフォルトの名無しさん
垢版 |
2018/08/27(月) 01:40:41.81ID:wSgDz8cK
明日は良いことあるよ
2018/08/27(月) 01:42:28.19ID:GTSRIP0x
VBAってファイルを開いてコピーしてペーストして閉じるぐらいのもんじゃないの?
何をこんな難しい話をしてるんだ??
2018/08/27(月) 01:50:26.83ID:rO/r14zS
>>364
2つ目のフォルダって、最下層から二つ目って意味じゃないかな?

Sub hoge()
Const sample1 = "c;\aaa\bbb\ccc.xls"
Const sample2 = "c;\aaa\AAAAAAA\cccaaaa.txt"

Dim s() As String
s = Split(sample1, "\")
Debug.Print s(UBound(s, 1) - 1)

s = Split(sample2, "\")
Debug.Print s(UBound(s, 1) - 1)
End Sub
2018/08/27(月) 02:12:40.91ID:ba8BcfX3
>>357
PS で、カレントフォルダ以下を再帰的に、すべての .txt を取得する。
まずcd で、作業フォルダへ移動してから、実行して

$files = ( ls . -Recurse -Filter *.txt )

$files | % { echo $_ }
$files | % { echo $_.fullname }

上は、パス無しのファイル名のみで、下は、フルパス付きのファイル名になる。
ファイル名だけよりも、フルパスにした方が無難

% -> ForEach-Object の、alias だから、以下みたいにも書ける

foreach ( $file in $files ) { echo $file.fullname }
2018/08/27(月) 06:05:46.61ID:S3tfItDu
>>372
スレチ
2018/08/27(月) 07:17:40.62ID:M7z4l4oi
一晩(実質2日だが)待ったがドーナツ先生はまだ>>79を解けないのか?
375デフォルトの名無しさん
垢版 |
2018/08/27(月) 07:26:14.29ID:wSgDz8cK
>>374
もはや解いたも同然と言っても過言ではない
376デフォルトの名無しさん
垢版 |
2018/08/27(月) 07:27:36.94ID:wSgDz8cK
>>374
あの、ところでテーブルレイアウトってどういう意味でしょうか?
377デフォルトの名無しさん
垢版 |
2018/08/27(月) 07:28:16.57ID:wSgDz8cK
テーブルレイアウトがこの問題の一番重要なところですよね
2018/08/27(月) 07:31:29.58ID:kP3VgsYY
元々が「イミディエイトウィンドウで」なので
Excelブックのシートに展開することを指しているんだろうとエスパー
379デフォルトの名無しさん
垢版 |
2018/08/27(月) 07:36:38.49ID:wSgDz8cK
>>378
そういうことね、あざっす!
380デフォルトの名無しさん
垢版 |
2018/08/27(月) 07:37:03.43ID:wSgDz8cK
謎はすべて解けた
2018/08/27(月) 08:14:42.64ID:e5NQDqcO
そもそも、MS謹製じゃない誰かの作ったライブラリ使って1行で書いて自慢するというんじゃね・・・
それって>>263>>275の書いたコードを呼び出す1行のコードでも良いってこと?
2018/08/27(月) 08:32:26.99ID:LISH444j
それはそうやな
2018/08/27(月) 08:46:14.15ID:k1/VmCLx
MS謹製のドーナツはあるんですか?
2018/08/27(月) 08:53:07.17ID:e5NQDqcO
>>383
無理矢理こじつけて面白いとでも思ってる?
先のコードを見れば、MSのdllしか使ってないのはすぐ分かると思うのだが。
つまり、無理矢理なのは明らか。

それともそんなことも分からない程スキルが無いのかな?
2018/08/27(月) 08:55:19.67ID:LISH444j
ドーナツは見事だわ
なかなか出来るもんじゃない
2018/08/27(月) 08:56:02.93ID:k1/VmCLx
>>384
お前が>>263のコードすら読めてないってのはわかった
2018/08/27(月) 09:05:04.70ID:e5NQDqcO
>>386
???
先のコードって>>263のコードのことだとでも思ってる?
何で>>263のコードがここで出てくるのか分からん。
2018/08/27(月) 09:47:37.36ID:G+Xbl5zq
標準でいろんな機能が備わってるか、という基準でならVBAのボロ負け
ってことは皆さん承知でいいんだよね?
2018/08/27(月) 09:50:03.33ID:LISH444j
そらそやろ
飛行機は空を飛ぶってことに合意とってるようなもんや
2018/08/27(月) 09:56:12.27ID:LISH444j
喫煙所でタバコは体に悪いよねと合意取るようなもんや
酒、タバコ、VBA
2018/08/27(月) 09:56:24.26ID:rSRJsKit
>>387
レベルが低いとそんなこともわからないのかw
2018/08/27(月) 09:57:32.34ID:QDRZk8kI
>>388
それ、 VBAが勝てる言語ってあるのか?
2018/08/27(月) 10:16:22.11ID:LISH444j
VBAが一番かわいいだろうが
2018/08/27(月) 10:17:51.89ID:LISH444j
ケンタッキーフライドチキンで鶏肉が不味いと言ってるようなもんだぞ
2018/08/27(月) 10:18:40.41ID:LISH444j
VBAのスレだぞここは
2018/08/27(月) 10:21:04.99ID:LISH444j
愛でよ愛せよ慈しめよ!
2018/08/27(月) 11:33:07.93ID:e5NQDqcO
>>391
何をどう勘違いしてるんだかw
398デフォルトの名無しさん
垢版 |
2018/08/27(月) 11:40:35.85ID:WsFyAGZ6
>>395
VBAは他所でスレ立ててやれ
2018/08/27(月) 11:56:56.87ID:LISH444j
>>398
あ、はい
2018/08/27(月) 12:13:16.68ID:6WD1A1gz
>>309
>俺が思うに.netが使えれば、もっと完成度が高く高機能なものを
>簡単に作ることが出来るはずだ。
>なんでこういうのを比較に出さないのかということだ。

ここを読むと技術力の低さが露呈していることがハッキリする
ドーナツアプリを見たがこの程度ではこれを.NETでやっても大きく差はつかない
せいぜい、運が良ければAPIじゃなくてマネージドな部品が用意されてるかもね、程度

>>79はみごとだ
標準のコレクションやライブラリの貧弱さ
ラムダ式の未サポートなどモダンな言語機能の欠如など
VBAの弱点をしっかり捉えた題材と言える
実際に勇気あるVBAerがコードを晒したがPSで書いた時とは全く異なる長ったらしい読みにくいコードだった
題材が的確だから結果にも大きな差がついた
オマケにVBAとは違って強力なライブラリや言語機能を備えたRubyがPSと同じく短くエレガントなコードになったことがこの事実をさらに後押ししている
2018/08/27(月) 12:22:32.82ID:UYbrAfc/
>>400
最後にテーブルにするというExcelに寄り添いつつも実用性のある操作を加えることで
決してVBAだけに不利な条件にもしないという隙の無さもポイント高い


(ところでPSのやつ最後テーブルになってるようには見えないんじゃが...)
2018/08/27(月) 12:22:46.12ID:LISH444j
ルビーは実行環境インスコせなあかんし
池沼シェルはモジュールをインターネッツから
インスコせなあかん、それがネックやな
2018/08/27(月) 12:23:29.37ID:KEOzq+7V
ドーナツはどこからインスコできますか?
2018/08/27(月) 12:24:47.83ID:LISH444j
>>401
そこに気づくとは
パワシェルは要件を満たしてないオナヌーコードに成り下がってる
簡単さにこだわる余り目的を見失ってる
2018/08/27(月) 12:25:12.04ID:LISH444j
>>403
VBAからや
2018/08/27(月) 12:29:16.75ID:LISH444j
要件を満たして正確に動作すること
これが第一、その上で簡単に書けたら良いよねが来る
簡単に書けました、ただし要件は満たしませんでは駄目なのさ
2018/08/27(月) 13:30:20.91ID:osQmxFgv
>>401
と思ったけど-Nowオプション付けるとテーブル(というかフィルター?)になるのか
早とちりだった

-TableNameでテーブルになるのかな?
2018/08/27(月) 13:34:04.87ID:LISH444j
わしもそう思ってた
2018/08/27(月) 18:38:58.42ID:e5NQDqcO
>>400
はあ、どうしてケチをつける割に人の話を聞かない奴ばかりなんだ?
あれをそのままで.netの方が良いなんて言って無いんだよ。
2018/08/27(月) 18:42:32.83ID:gPVC/qB6
特大ブーメラン
2018/08/27(月) 18:54:44.25ID:e5NQDqcO
分かりやすいのは他言語のコードを見ても全く、使おうとは思わない点だ。
VBAで何の問題も無いとしか思えない。
所詮、そんなコードだということ。
2018/08/27(月) 19:01:40.79ID:gPVC/qB6
その点ドーナツは凄いよな
俺も今やってる仕事でVBAでドーナツ使いたいわ
そんな魅力がドーナツのコードにはある
2018/08/27(月) 19:18:00.13ID:e5NQDqcO
>>412
話が読めないバカが混じってるな。
日本語が弱いのかな?
2018/08/27(月) 19:25:45.86ID:gPVC/qB6
>>413
日本語読めない子扱いされてるのがそんなに悔しいの??

わざわざ日本語弱いとか煽ってくるとかwww
人間自分が言われて嫌なことを悪口に使うって聞いたことない??
2018/08/27(月) 20:08:40.51ID:gPVC/qB6
>>413
ねえいつもうるさいくせに何で黙っちゃったの
2018/08/27(月) 20:11:11.67ID:e5NQDqcO
>>414
根拠も何も無い、論理的に間違っていてもまともに反論も出来ない、そういう奴だから日本語が弱いと言われても仕方がないだろう。

お前は何ーつ反論していない。
反論出来ないということだろう。
2018/08/27(月) 20:12:23.31ID:e5NQDqcO
>>415
今、見たからだが。
お前みたいに、このスレに齧り付いてるわけじゃ無い。
2018/08/27(月) 20:29:58.31ID:gPVC/qB6
>>416
おっそうだな
それ鏡に向かって言ってごらん?
それだけでかなり日本語能力が改善されると思うよ?
2018/08/27(月) 21:45:25.01ID:e5NQDqcO
>>418
一切反論が出来ないようだw
論理的なものが何も無い。
420デフォルトの名無しさん
垢版 |
2018/08/27(月) 21:49:35.20ID:9BbUG3+I
このスレはいつからバカの楽園になったんや
2018/08/27(月) 22:29:12.75ID:MClzGXr8
バカが1人だけだとほっとかれて終わるけど
2人で言い合うから終わらない
2018/08/27(月) 22:39:23.01ID:iFAlBQzj
例えば無数にあるエクセルファイルからそれぞれ読み取ってデータを集計する際、どう処理するのがベター?
速度気にするならデータベース?
2018/08/27(月) 22:46:53.92ID:qeiD+vRz
>>422
無数にあるエクセルファイルって、データの形式は統一されてるの?
424デフォルトの名無しさん
垢版 |
2018/08/27(月) 23:10:27.18ID:9BbUG3+I
速度は気にするなと何度言えば
2018/08/28(火) 06:28:16.68ID:3670nM1R
>>423
形式は統一されてるとして同じ作業を繰り返えさせるのはどうするのがベターなのかなって。
>>424
やっぱ普通に開いて閉じるの繰り返しか。
426デフォルトの名無しさん
垢版 |
2018/08/28(火) 07:08:49.90ID:HTwoJr4W
>>425
形式が統一されてるならSQL
{Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)}
2018/08/28(火) 08:14:03.75ID:iD8sZg5y
そもそも、その内容だけを見た時にVBAでやる必要有るのか?とも思う。
好きなの使え。
それに、その程度のことでどれがベターとか考えるか?
コード見て、こりゃダメだと思うようなの書いて無い限りどんなのでも良いだろ。

スピード優先な処理なのに1つずつセルに入れてるようなのはダメだが、処理に時間がかかってダメだという状況じゃなかったら別にどうでも良いし。
2018/08/28(火) 08:52:14.14ID:HQDFIjl0
ドーナツはVBAじゃないとダメだろ
2018/08/28(火) 08:55:27.62ID:TEJeUOom
Ruby なら、こういう感じで、フォルダ以下を再帰的に処理できる

Dir.glob('C:/Users/Owner/Documents/Ruby/test/**/*.txt') do |file|
next if File.directory? file # ファイルだけを処理する

# 処理
end
2018/08/28(火) 08:58:35.36ID:HQDFIjl0
>>429
センスがない
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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