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(月) 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
センスがない
2018/08/28(火) 09:02:08.44ID:EWCB7Z77
VBAじゃないならスレチじゃん
2018/08/28(火) 09:08:59.41ID:iD8sZg5y
>>428
何でVBAじゃないとダメなの?
ちゃんと答えられる?
2018/08/28(火) 09:13:51.81ID:iD8sZg5y
>>430
どこがセンス無いんだ?
全然説明が無い。
2018/08/28(火) 09:17:55.83ID:TEJeUOom
Excel は環境構築がいらない。
Excelが実行環境だから

だから、Excelエンジニア(ノンプログラマー)は、Excelを使う

ところが、そこへ本格的なプログラミングを頼む者が現れるが、
プログラミング技術がないから、Excelで作ろうとする

案件と使う技術の不一致!
2018/08/28(火) 11:09:00.30ID:tL+eufN4
仮想マシンでwindowsからセットアップしなきゃならん
インストールしてからもマクロ許可の設定しなきゃだし
手間も金もかかる
2018/08/28(火) 11:46:00.71ID:nx/+ECtu
>>435
2018/08/28(火) 12:01:55.63ID:HQDFIjl0
パソコンとはWindowsとMicrosoft Officeが動くもののことである
WindowsとMicrosoft Officeが動かないマシンなどこの世には存在しない
してはならない
2018/08/28(火) 12:03:52.85ID:o0tRDQL9
クリエイティブなエンジニアはみーんなマックとハイスペLinux
2018/08/28(火) 12:17:45.25ID:5aVCachZ
エンジニアはどっかよそへ行っててくれ
2018/08/28(火) 12:21:23.11ID:iD8sZg5y
>>437
根本的に勘違いしてる。
別にOfficeが動かないマシンが有っても構わない。

けど、ここはExcelVBAのスレだからExcelが動く環境の人が質問する所だ。
Officeが動かない人がここで何をするんだ?
2018/08/28(火) 12:25:28.24ID:1gf7K+E/
Officeの入ってない管理者用PCでリモートPCのOfficeをいじるときにCOM経由でVBAのコードを動かすこととかあるよね
2018/08/28(火) 12:30:46.90ID:HQDFIjl0
>>440
Officeが動かないマシンなどありません
異端者はこのスレから立ち去りなさい
2018/08/28(火) 12:46:54.11ID:59YR0+NP
>>441
あるね
2018/08/28(火) 12:51:08.91ID:iD8sZg5y
>>441
う〜ん、それこそVBAじゃ無くても良いような気がする。
既に出来てるコードを動かすという点で新たに組む必要が無いという理由が、あるいは他にも事情があるのかもしれないけど。

でも、そもそもExcel入って無くてインスタンス作れるか?
2018/08/28(火) 18:22:17.74ID:4ROMapnq
>>441
無いだろ
リモート側のExcelどうやって起動するんだよ…
2018/08/28(火) 20:34:26.56ID:og1ij5ZD
RubyバカはRubyのスレに逝けよ。Rubyのスレでは俺はRubyが使えるんだエラいんだって自慢できないからここに
いすわってんのか?
2018/08/28(火) 21:17:25.35ID:Jta+sf2j
>>445
インスタンスはリモート側で作らせればいい
管理者側はリモート側のプロセスをモニターするだけ
2018/08/28(火) 21:51:02.38ID:7BttFK5d
何それリモデでよくね?
449デフォルトの名無しさん
垢版 |
2018/08/29(水) 00:00:56.70ID:saiWj2Qp
Office は高いから、入れていない

Ruby で処理して、VSCode のExcel Viewer で見たりする
2018/08/29(水) 00:52:26.56ID:UxZZ4olJ
csv開いて取り込む方法だけでも色々あるのね

openfileで開いて1行ずつ読み込んで、カンマ区切りでセルごとに格納するって方法もあれば、csvファイルをエクセルとして開いて配列に格納する方法もあった
2018/08/29(水) 02:32:40.38ID:Xs4g9sfN
高いからエクセル買えない奴多いんだな
中国人や韓国人ですかね?
2018/08/29(水) 02:50:31.20ID:P8cf8NAK
こんなスレまだあるんだな
しかも結構人多いのに驚いたw
VBAっていうかExcelって需要あるんだね

でも仕事でやれって言われたらストレス溜まりそうだな
基本的にGUIが貧弱なVB6だよね

10年ぐらい前に必要に迫られてちょっとだけ触ったけど
C#に慣れた身には死ぬほど不便に感じたわ
453デフォルトの名無しさん
垢版 |
2018/08/29(水) 05:52:17.26ID:w2kFCGmb
>>452
じゃあC#スレいけば?
2018/08/29(水) 07:37:37.34ID:+pRcq4Dh
買えないならLibreOfficeがいいね
Excelとあまり遜色ない
BASICやpythonもサポートされてる
金出してでもネームバリューが欲しいならエクセル
2018/08/29(水) 11:41:08.15ID:F0ZekwBr
>>453
意味が分からんw
頭悪そうだなおたく
456デフォルトの名無しさん
垢版 |
2018/08/29(水) 12:32:06.57ID:w2kFCGmb
>>455
このくらいの意味もわからんとはかわいそうなやつだな
2018/08/29(水) 12:45:41.36ID:wxHokPsy
また始まったよ
お前らなもっとやれ
2018/08/29(水) 12:57:17.66ID:F0ZekwBr
何も始まらない
ID:w2kFCGmb が被害妄想が激しいお馬鹿さんなだけ
2018/08/29(水) 18:47:58.71ID:lzTJeG8r
何だこりゃ?
始まってるじゃね―か。
2018/08/29(水) 20:18:54.82ID:F6DjsKzv
C# スレでフルボッコでもされた憂さ晴らしに来たらこっちでもハブられてるって話だろ w
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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