Excel VBA 質問スレ Part55

レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん
垢版 |
2018/07/22(日) 14:13:18.78ID:/fuF+goF
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK


※前スレ
Excel VBA 質問スレ Part54
https://mevius.5ch.net/test/read.cgi/tech/1527334657/
2018/08/21(火) 12:04:17.16ID:LMQ5YiiU
>>920
はあ? ←質問
2018/08/21(火) 19:07:20.32ID:7sEKkP0/
>>916
ないなぁ
ファイル交換は別のよりセキュアで楽な方法で行いメールは通知のみ
ビジネスの基本だと思うけど、まさかメールでエクセル送っちゃうようなガバガバな企業なの?大企業って嘘だったのか?
2018/08/21(火) 19:13:32.71ID:7sEKkP0/
まあ普通はマクロ付きブックなんて送られたら真っ先に不正アクセスを疑うわな
2018/08/21(火) 19:41:46.35ID:YkHsku6A
>>922
プッ。
そのセキュアな方法でも同じことに気付いて無かったのかな?

こういうこと言う奴が出てくると思ったw
2018/08/21(火) 19:44:08.91ID:YkHsku6A
目先のことに囚われて噛みつく方向性が分かって無いんだよなあ。
2018/08/21(火) 19:50:15.22ID:7sEKkP0/
>>924
メールしか使ったことないタイムトラベラーさんには現代のリソース共有はちょっとイメージできないのかもしれんなあ
927デフォルトの名無しさん
垢版 |
2018/08/21(火) 20:20:28.36ID:MMaCm1hx
>>922
ここじゃなく世の中全体でアンケート取ったら絶望的な結果だと思うよ
(日本だけかもしれんけど)
2018/08/21(火) 20:46:52.41ID:K3bJIWvH
エクセルファイル1つで片がつく学生実験やママの家計簿みたいな仕事は楽そうで羨ましい
日頃から百や千をこえるエクセルファイルを扱ってるともう物理的な事情で複数のデータとマクロを1つになんて言ってられない
2018/08/21(火) 20:56:14.57ID:YkHsku6A
>>926
バカだからまだ分かってないw
ちなみにうちの会社でも専用のセキュアでファイルをやり取りできるようなシステムがある。
それでもメールに添付する奴もいるが。
しかし俺はメールにファイルを添付するようなことはしないな。
それでも、同じことだ。
だからそんなシステムのことまで書くようなムダなことはしないだけの話。

君はおバカさんだからわざわざムダなことをするようだが。
2018/08/21(火) 21:01:39.45ID:YkHsku6A
>>928
???
そんなもんまでエクセルでやってるアホ会社の話か?
それはもうエクセルでやるような話じゃ無いだろ。

あるいは文書としてファイルが多数有っても、それぞれが全然別の文書ということなら1つ1つの文書にVBAが乗っかってる方が良いけどな。
931デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:07:35.67ID:MMaCm1hx
でも自治体はもっと酷いよ
2018/08/21(火) 21:08:16.81ID:K3bJIWvH
>>930
メールで1つのエクセルファイル交換してよろこんでるような規模の会社だと想像つかんだろうな
住んでる世界が全く違うのに分かり合うことなんてさいしょから無理だったんだよ
2018/08/21(火) 21:10:25.67ID:66Ai7LVD
毎回荒らしいるからすげー聞きづらかったんだけどいつまでもいるから今聞く教えて
javaとかc、pythonでexcelファイルの、あるシートのあるデータ利用して云々かんぬんして結果をそのexcelに上書き
て処理するとき一番楽に実装出来るのはどの言語なの
詳細だけど特に言語の指定無し 俺が使えるのがjava.c.python.powershellくらい
大抵はexcel内のデータ利用してスクレイピングとかwebapi叩くとかして情報取得してexcelに転機
実行速度も多少は気にするけどそれよりも正確さとユーザがどれだけ楽かが重要
具体的に言えば処理に15分掛かろうがユーザがマクロ実行ボタン押すだけでほか作業やっても良いなら十分許容される
934デフォルトの名無しさん
垢版 |
2018/08/21(火) 21:24:00.50ID:MMaCm1hx
>>933
もしかしたらSQLかもしれないよ
対象のExcelシートがどんなものかによるけどね
2018/08/21(火) 21:34:06.79ID:JvEAafEP
>>928
> 日頃から百や千をこえるエクセルファイルを扱ってる
どんな職場だよ w
2018/08/21(火) 21:36:22.08ID:JvEAafEP
>>933
その中ならPowerShellだな
2018/08/21(火) 21:47:19.11ID:K3bJIWvH
>>933
https://github.com/dfinke/ImportExcel

Import-Excel input.xlsx |
ForEach { スクレイピングとかwebapi叩くとか } |
Export-Excel output.xlsx
2018/08/21(火) 22:27:35.38ID:m8PJVxGR
>>933
似たようなことをpythonでやってるわ
openpyxlが便利
配布するつもりならpyinstallerでexe化
2018/08/22(水) 00:28:46.48ID:h82tfzI1
PowerShell は複雑なものは、ダメ!

ファイル・テキスト処理なら、Ruby。
数学系のライブラリを使うなら、Python

Selenium WebDriver なら、Ruby, Python
2018/08/22(水) 00:47:08.06ID:DdpZS95R
ファイルならpowershellだろう
しかもなんでwindowsでRuby・・・
2018/08/22(水) 01:44:22.85ID:NmStLZEH
>>932
全く反論出来て無いし、こいつも日本語に弱いようだ。
ファイル移動はメールに限らず全部アウトなことも気付か無い。

それともどうにも反論出来なくて悔しいからメールの話で憂さ晴らししてるのかな。

まあ、よく分からんが君の会社よりはデカイと思うがね。
2018/08/22(水) 02:00:58.64ID:NmStLZEH
どの言語もExcel開いた状態で動かすのに向いてない。
あとは自分の環境だけで動かすだけならどれでも良い。
他の人も動かすならPowerShellとかJavaとかかな。

どれもデータとプログラムが分離されてるのが不便なんだが、どうしてもExcelブックということを忘れる人が多いね。
まあ、VBAでも分離できるからどちらにも対応出来るけどね。
2018/08/22(水) 02:05:49.00ID:fEBzZlfO
どんな職場だよw
◯◯とかかな

みたいな疑問文が含まれていれば質問スレのレスとしてセーフという風潮
2018/08/22(水) 02:51:22.72ID:KWD34WOT
>どれもデータとプログラムが分離されてるのが不便
いや一緒になってるほうが不便だろ…
2018/08/22(水) 05:18:50.52ID:GQLClv+X
>>940
いつものRuby廚でしょ、スルー推奨
2018/08/22(水) 05:42:30.14ID:/pvGPZu6
>>942
素人はデータとマクロを一緒にしたがる
ブックとは分離したほうが再利用しやすくて良い
分離するからvbaを使う意味はない
どの言語でも開いた状態で動かすことは簡単
2018/08/22(水) 06:13:07.83ID:e5VZnZer
ホットキーでPSコンソールを開いてActiveオブジェクトや選択オブジェクトを処理するための自作コマンドを打つ
Excelとはいえマウスはできるだけさわりたくないじゃん
948デフォルトの名無しさん
垢版 |
2018/08/22(水) 07:47:46.52ID:KkxvCEpq
誰かこのスレの雑談・議論スレ作ってくれないか?
2018/08/22(水) 08:01:39.69ID:NmStLZEH
>>946
ブックの場合は一緒の方が便利なことも多い。
Excel使ったことない奴はそんなことも気付かない。
VBAではデータとプログラムを分離することも出来る。
両方できる方が良いのは当たり前。

開いた状態から別ファイルダブルクリックなんてかっこ悪いやり方をしなきゃならんのはいかがなものか。
2018/08/22(水) 08:33:49.01ID:NmStLZEH
Excelというプログラムを真っ向否定してるバカが多いね。
データとそれを加工する部分が分離されてて、そこに人間の判断だとかが必要無いならExcelというソフト自体いらないはず。
実際、業務システムではそういうのが結構有るだろ。
人間の判断は業務システム内でやれば良いわけだ。
Excelの場合はそういうシステムを組むなどという大変なことをせずに人間の判断でいろいろできる所が良いんだぞ。
Excelが持っている機能は汎用的だからブックに結び付いていないが、データを見ながら作業をするというExcelの通常作業を考えればそのブック特有の機能はそのブックに結び付いていた方が良いことを示している。

Excelというソフトでの作業がブック開いた状態でアレコレするという、つまりセルに色をつけるとかグラフを作るとか、そういう作業はデータを見ながらやるわけでプログラムとデータが分離されてたら不便なことを証明している。

分離されてた方が良い場合ってのはデータの値があるしきい値によって自動的に分類され、それによってセルに色が付けられるなどの場合だ。
951デフォルトの名無しさん
垢版 |
2018/08/22(水) 09:26:46.21ID:K1XMYdYS
デバグのときF8でコード1行ずつ実行できるのはいいのですが
SubやFunction呼び出しのときはわざわざ見に行かなくてよくする設定はどうしたらいいですか?
2018/08/22(水) 10:23:52.61ID:fEBzZlfO
他のプロシージャを呼び出してる行の次の行とかにブレークポイントを設定してから普通に呼び出し元のプログラムをF5で実行して、ブレークポイントで止まったところからF8でステップ実行を再開すれば良いと思う
呼び出された側のプロシージャのステップ実行をすっ飛ばせるよ
2018/08/22(水) 11:06:16.49ID:y1N7+R1N
>>951
Shift + F8
2018/08/22(水) 11:17:52.07ID:uHHsRsQ2
どうでもいい雑談で1スレ消費してしまった…
2018/08/22(水) 11:59:18.29ID:g9Ou6iy2
>>949
ユーザーはアプリを使いたいんだ
それなのにデータのロードを強要する1ファイルスタイルは最悪と言っていい
エクセル自体遅いのに起動時にデータまでロードするとか遅すぎて話にならん
2018/08/22(水) 12:01:42.56ID:g9Ou6iy2
>>950
セルに色つけたりグラフ作るのにわざわざスプレッドインターフェースを開く必要はない
色をつけたりグラフを作るコマンドを書いてそのコマンドにデータを流し込むだけ
データと分離しているからこのコマンドは何度も再利用できる
2018/08/22(水) 12:08:18.81ID:khg6W7e6
もう質問スレ消して雑談スレだけでいいよ。匿名掲示板なんていくつもあるし。
2018/08/22(水) 12:08:58.02ID:NmStLZEH
>>955
>>956
バカだろw
君はExcelでブックを開いたことが無いと言いたいのかいw
2018/08/22(水) 12:13:01.39ID:NmStLZEH
データを見ながらどうするかというのがExcelなんだね。
コマンドで流し込むなら、それ以前に表の表示閲覧全てを業務システムでやれば良いわけで、Excelなんぞというアプリの需要も存在しない。

したがってExcelなどというアプリは見たことが無いと言いたいのか?
2018/08/22(水) 12:26:13.82ID:sTWd/c17
excelは帳票出力ツールでもDBでもメモ帳ですら無い
表計算ソフトだって言いたいの
2018/08/22(水) 13:28:13.92ID:S7ILKLj9
Excel開いてデータ見ながらアレコレ弄る場合、ささっと書けたほうが便利
なのでそういう場合irb(rubyの対話実行)使ってる
書き捨てプログラムはやっぱりrubyが強い
962デフォルトの名無しさん
垢版 |
2018/08/22(水) 14:43:36.16ID:wdTatf/S
でましたRubyヴァカ wwwwwwww
2018/08/22(水) 14:49:19.76ID:S7ILKLj9
ヴァカって久しぶりに聞いた
2018/08/22(水) 15:37:29.47ID:KXBQcxdn
リアルタイムプレビューは簡単に実現できるのでエクセル固有の優位性とは言えないな
そしてリアルタイムじゃなくてもデータ編集、処理編集、コマンド実行のループならエクセルの狭いウィンドウでシートとIDEを行ったり来たりよりもずっと早く作業できる
2018/08/22(水) 16:46:23.26ID:bHLnqjZ4
RubyとかいうゴミクズはVBA以下
2018/08/22(水) 19:03:37.04ID:I61xiysx
スパークラインをVBAで挿入したいんだけど範囲指定のところがうまくいきません。
わかる方いたら教えてください。よろしくお願いします。

call cells(10 , h ).SparklineGroups.Add(xlSparkLine, "n5: n100")

"n5: n100" のところなのですが、 
range(worksheets(h).cells(14,5) , worksheets(h).cells(14 , G ))

のようにして ワークシートごとの数値群をスパークラインにしていきたいのですが、、、
何か良い方法を教えてください。
よろしくお願いします。
2018/08/22(水) 19:06:12.75ID:NmStLZEH
A「送った2つのファイルの内、拡張子がrbのファイルをダブルクリックしてください。
B「なんかファイルが開けませんとエラーが出るよ」
A「ん?・・・!ああ、それはRubyがインストールされて無いということですね。」
B「で、どうしたらいい?」
A「〜というぺージでダウンロードしてからPCにインストールしてください。」
B「分かった。」

しばらく後、
B「インストールしてたらさ、変な警告メッセージが表示されてさ、暫くしたらウチの会社の情シスの人がやって来て、勝手にソフトをインストールしないで下さいって怒るんだよ。で、Rubyのインストールはダメだって。」
A「そうなんですか。」
B「これさあ、どうしたら良いんだろう。もう駄目ってこと?」
A「・・・・・・。わかりましたVBAで組んで送ります。」
B「VBAってのは何だい?」
A「〜が〜で、〜というわけなんですよ。」
B「ふ〜ん。何となく分かったけど、どうして最初からそのVBAってのを送ってくれなかったんだい?」
A「・・・・・・・・・・・・」
2018/08/22(水) 19:10:31.37ID:3pfLjmIv
excelは入ってる前提ですか
2018/08/22(水) 19:13:15.55ID:S7ILKLj9
>>967
ocra使えよハゲ
2018/08/22(水) 19:43:28.97ID:+UDLE+c7
>>967
んでVBAを送ったらバージョン違いやビット数違いで動かないとか
ちょっとシートをいじったら壊れて動かなくなったとか
よくわからないメッセージがでてマクロの実行ができない
とかまたトラブルが発生するんだろうな
セキュリティ設定強めで情弱顧客の組み合わせではありがちなパターンだな
最初からPowerShellにしときゃなんの依存もなく確実に動いたのにくだらないことで信用を失ってもったいないなあ
971デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:46:22.95ID:jIQXHl+4
パワーシェルがバージョン間の差異まで吸収してくれると思ってるパワー系バカを探してるんだけどこの辺に来てない?
2018/08/22(水) 19:48:07.56ID:+UDLE+c7
>>971
なんも知らんなら黙ってた方がいいぞ
2018/08/22(水) 19:54:10.93ID:NmStLZEH
>>970
スゲー。
PowerShellだと削除したシートも甦らせてくれるとはシラナカッタ。
974デフォルトの名無しさん
垢版 |
2018/08/22(水) 19:56:16.90ID:jIQXHl+4
>>972
なんだ?俺はパワー系バカを探してるんだがおまえ知ってるのか?
2018/08/22(水) 20:05:38.43ID:HvlLP3Kg
>>970
PowerShellって使ったこと無いんだけど、ユーザー定義関数とか作れるの?
え?作れないの?ゴミじゃん
2018/08/22(水) 20:06:09.29ID:CGdGAG7L
ビット数の違いは条件付きコンパイルで吸収すれば良いだろ
2018/08/22(水) 20:10:18.16ID:+UDLE+c7
>>975
作れるぞ

>>976
うわめんどくさ
2018/08/22(水) 20:15:11.20ID:HvlLP3Kg
>>977
じゃあ作り方教えてよ。
参考ページでもいいから。
2018/08/22(水) 20:21:01.59ID:HvlLP3Kg
>>977
あとユーザーフォームの代わりになるものとか、ワークシートイベントとかが拾えるのかも気になる。
この3つがスムーズに作れない限りPowerShellなんて産廃
2018/08/22(水) 20:34:54.69ID:CGdGAG7L
ユーザーフォームなら.NETで作れるだろ
2018/08/22(水) 20:39:10.83ID:NmStLZEH
PowerShellね。
今日、さすがにExcelとは関係ないzipの解答とできたフォルダ名の変更だからかなり久々にVBAじゃなくてPowerShellで書こうとしたさ。

v5インストール?
実行ポリシー?
VBAで良いや。
2018/08/22(水) 20:45:35.66ID:6796EQ6v
>>962, >>965
>>945
2018/08/22(水) 20:45:55.31ID:DdpZS95R
>>975
お前がゴミじゃんw
2018/08/22(水) 20:48:11.66ID:JLjJESO/
csvファイルの中身を整理整頓して別シートに並べ直すマクロを書いてるんだけどもなんか下手くそだなあと思う
具体的に下手くそな場所が言えないから改善もできない
なんかこう微妙だなあというときどうしてるの?
2018/08/22(水) 20:53:16.42ID:zkT1nNYO
>>984
「正規化」という
そういうのは続けてれば慣れるよ
2018/08/22(水) 20:53:45.96ID:HvlLP3Kg
>>983ほどじゃないけどな?
2018/08/22(水) 20:57:54.17ID:FeRIeQCU
>>981
そこで躓くのは流石に意味分からん
というか最新は6だぞ
2018/08/22(水) 21:13:56.67ID:e5VZnZer
>>979
function
System.Windows.Forms
Register-ObjectEvent
2018/08/22(水) 21:17:30.80ID:e5VZnZer
>>981
shell.application
2018/08/22(水) 21:24:30.86ID:HvlLP3Kg
>>988
あ、ごめんユーサー定義関数って、ワークシート上で使えるユーザー定義関数のことね?
VBAなら普通に定義したらワークシート上で使えるから区別するの忘れてたわ。

で、PowerShellでfunctionで定義した関数はワークシート上で使えるの?

System.Windows.Formsってフォーム作成するところからゴリゴリコード書けってこと?しかもフル暗記しないと無理じゃない?
VBAならポチポチっとしたら10秒で作れるよね。
テキストボックスとボタン置いてちょっとした処理書くだけなら1分で出来るよね。
PowerShellでそれ出来るの?

Register-ObjectEventとか聞いたこと無いんだけど、これも暗記しないと無理だよね。
VBAならVBEで数クリックで作れるものに、どれだけ苦労すれば作れるの?
2018/08/22(水) 21:31:27.69ID:LgCz8h8z
>>987
配布前提だと実行ポリシーは面倒だわな
PowerShell -ExecutionPolicy RemoteSigned …
で逃げられるけど
2018/08/22(水) 22:46:05.33ID:e5VZnZer
>>990
フォーミュラのことなら知らない
ネイティブDLLとかJavaScriptなら定義できるみたいだがPSは無理じゃないかな

Add-Type -AssemblyName System.Windows.Forms
$f = New-Object Windows.Forms.Form
$t = New-Object Windows.Forms.TextBox
$b = New-Object Windows.Forms.Button
$p = New-Object Windows.Forms.FlowLayoutPanel
$b.Text = "Click Me!"
$b.add_Click({ Write-Host $t.Text }.GetNewClosure())
$p.Controls.Add($t)
$p.Controls.Add($b)
$f.Controls.Add($p)
$f.ShowDialog()
人によるだろうけど1分で十分作れる範囲だと思う
当然だけどコードなので再利用が簡単でどんどん生産性が上がっていく
VBE画面ポチポチでも再利用できなくはないけど面倒だよね

プログラミングはべつに暗記しなくていいと思うよ
わからなければ調べて自作ライブラリ化しておけば1行で済むようになるのがプログラムの魅力
何度もマウスをクリックしたくないというのが人情
2018/08/22(水) 23:10:51.30ID:9AKJRHSD
>>992
これ、どんなして使うのか教えて!
PS1に記述? Excelからどんなして呼び出すの?
2018/08/22(水) 23:52:09.50ID:HvlLP3Kg
>>992
フォームを作る部分で調べなければならないようでは凄くハードル高いよね。
誰でも(一度でも作った経験がある人なら)1分かからずフォーム作れるからVBAが良いのであって・・ベテランしか1分で作れないようなものはダメ
自作ライブラリ化しても、ある程度増えてきたら、何ていう名称だったかとか探さなくちゃいけないし結局、時間かかるよね。

>>993
たしかに、そもそもどうやって呼び出すんだろう。
エクセル上のボタンにハイパーリンク付けて実行する感じ?でもカレントディレクトリの・・・って指定出来たっけ。
2018/08/23(木) 00:22:02.48ID:5czy+V1T
>>994
そうか?
VBEのどこをどう操作したらどうなるんだってのすごくわかりにくいと思うけどな
.NETのコードを覚えるほうがずっと簡単だったよあっちはドキュメントも充実してるし

例えば自分がさっき書いたFlow Layoutの上にTextBoxとButtonが乗ってるサンプルだけど
初心者になった気持ちでExcel FormsでFlow Layoutってどうやってつくるんだろう? って考えて
Excel VBA Forms Flow Layoutとか検索キーにいれてググッてみたのだがコレだというのがいっこうに出てこない
検索してもすぐにはわからないならデザイナ頼りの初心者じゃなおさらこの時点で詰みだよね
2018/08/23(木) 01:13:45.31ID:CnER65fr
>>995
フローレイアウトが便利なのは分かるが、そもそもVBAで作るようなフォームでフローレイアウトが必須な場面はまず無い。
少なとも長年ExcelVBAで開発してきて可変サイズのフォームを作った経験はほぼ皆無。
普通にボタン置くだけで目的は達せられるのに、わざわざ不要な機能実装する必要はないと思う。
2018/08/23(木) 01:33:04.25ID:ufkyuu0q
自分が使ってないから不要理論
2018/08/23(木) 02:10:42.43ID:MddzC4G8
>>997
不要なのはフローレイアウトを使わなくても実現できるからで、自分が使ってないと言うのは実例
2018/08/23(木) 05:59:50.61ID:kThmoP0z
>>996
それ言っちゃうとVBA自体使わなくても目的を達せられるからVBAは必要ないってことになる
自分がその実例
2018/08/23(木) 07:10:59.23ID:Vto4tcSz
1000?
10011001
垢版 |
Over 1000Thread
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 31日 16時間 57分 41秒
レス数が1000を超えています。これ以上書き込みはできません。
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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