◎正当な理由による書き込みの削除について: 生島英之とみられる方へ:
Excel VBA 質問スレ Part54 ->画像>6枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1527334657/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
ExcelのVBAに関する質問スレです
コード書き込みや作成依頼もOK
最近プロによる書き込みが多々見うけられますが
彼らに絡むと話がこじれるので質問したい方は適当にスルーしてください
※前スレ
Excel VBA 質問スレ Part53
http://2chb.net/r/tech/1524823358/ データ数が違う2組のデータがあったとして、
それを1つのグラフに表示させたいのですが、
x軸が合わなくて困っています
調べても解決できませんでした
よろしくお願いします
https://ideone.com/9Dphe3 >>3 すみません
もしかしたら自己解決しそうかもです
1番目のグラフの種類をxlXYScatter
に変えたらx軸が合いました
でも、どちらもxlLinesの場合や
2番目のデータだけxlXYScatterの場合は
x軸が合いません
なぜなのでしょうか?
>>4 すみません
やっぱり嘘です
xlLineに変えても
>>4 すみません
やっぱり嘘です
xlLineに変えてもx軸は合いませんでした
なぜなのでしょうか?
すみません、落ち着いてまたやってみたら自己解決しました
いろいろ変えてみたのですが、多分
xlLine→xlXYScatterLinesNoMarkers
に変更したのが一番効いたのだと思います
xlLineだと.AxesのMinimumScaleや
MaximumScaleが正しく動かなかったのですが、
xlXYScatterLinesNoMarkersに変えたら
それも正しく動くようになりました
よくよく考えてみればxlLineは月ごとの変化を見るときに
よく使ったりするやつですよね
今回のデータは散布図系のやつを使うのが適切でした・・・
https://ideone.com/WrXahz >>9 まさか散布図はX,Yがあるけど、それ以外のグラフはYしかないっていうエクセル仕様が分かってないなんてオチかなぁ
と思って確認しようとしてたら先に自己解決してたか、まあ良かった
今回の例では、散布図以外のグラフでは、Xだと思っているのは数値ではなく、単なるY要素ごとのラベルでしかない
この場合、横軸はXデータの数値によらず等間隔に並んでしまっているはず
XY型のデータには散布図以外使えないと思った方が良い
Xが等間隔に並ぶ場合のみ、なんちゃってで使えるけども
まあ、散布図っていう名称のせいで、自分の用途には使えないと勘違いするグラフ初心者は多い
エクセルで散布図って呼ばれているものが本来のグラフで、それ以外のはただのポンチ絵()だと思うんだけど、
ずっと散布図って名前なので憤りを隠せない
>>10 ありがとうございます
まさにおっしゃる通りでその仕様知りませんでした
横軸が等間隔に並んでいてなんでかな~と疑問に思ってたのですが、
なぜそうなってしまうのかその説明でやっと理解できました
既存の全文字コード&フォントのアップデートで商売になるな
excelVBAスタンダードの資格って社会的に評価されるもんなの?
試しに見てみたら思いのほか簡単に出来そうだったから受けてみようかと思ってる
「エクセルが使える」って言葉の1つの裏付けになるかなって
オフィス系の資格は就職後に評価されることは無い
無職か派遣なら無いよりはマシ
会社としては雇うか迷う時に資格や経験を参考にする
しかし履歴書の資格とか経験は嘘ばっかりで役に立たない奴がマジ多いので
あんまり信用してないが、中には本当の奴もいるので
そういうのは面接とかでアピールする方が上手くいったり
そもそもVBAなんて資格なんてなくても使える奴は普通に多い
言っとくがエクセルは相当使えん奴でも強制的に一日中使わされるから
優秀な奴ならVBAは自然と使えるようになるのを会社も分かってる
もし学生なら別のスキルを磨け
多分英語系なら引っ張りだこ
社会では
>>20のようなアドバイスしたがりのバカが一番使えません
なにかを犠牲にする訳じゃないんだからやってみるのが一番
世間一般のエクセル使えますの評価ってだいぶ低いと思うけど
ぶいびーえー?ってのがほとんどだよ
Excelは社会人の基本ですからね。
名前が書けるのと同じ、当然のことなんですよ。
逆に、Excelに馴染みがないのは、名前が書けないのと同じです。
>>18 持ってるけど評価されてるのか微妙
まぁ持ってて損はしてないと思う
持てるだけの能力を身につけることが大切なのでは
それが身についていれば自信を持って使えると言えそう
まあ IT Passport や FE のレベルだと持ってたからといって効力はほとんどない。
知識自体はもちろん有用。
VBAを自在に操れる人って凄いと思うんだけれど
Cやパイソンやジャバや色々やってる人から言わせると
VBAは、なぁ(笑)ってなるのは何で?
VBAだって小規模の開発はできるんだし
立派な言語だって思うんだけれど
>>29 なんでCをカタカナで言わんの?
(´・ω・`)b
>>29 多分VBAを自在に操れる人は他の言語も使えるからなw
それを踏まえて(笑)なんじゃないか?
>>29 ママチャリを小馬鹿にするロードレーサーのような気持ちかな
30年以上前に、初心者はBASIC、ベテランはCという流れがあって、いまだにそのイメージを引きずってる老害の可能性
今ならVB.Netで問題なく開発できてパフォーマンスも大差ないのに下に見てるのは間違いなく老害
>>33 VBAとVB.netは全くの別物なんだけどね
老害の特徴
・マルチプロセス/スレッドを嫌う
・string 型を嫌う
・スクリプトを嫌う
>>33 ちょっとBasicに夢見すぎだと思う
Microsoftですらもう興味ほぼゼロのVB.NET
VB.NETから見ても超絶時代遅れVB6
VB6から見てもオモチャのようなVBA
>>35 すまん
はしょりすぎて伝わってない可能性
VBAはExcelのオマケだし実行速度は遅いし扱えるメモリも小さいしライブラリも貧弱なのは確かだから、
下に見られてもしょうがないけど、用途を限定すれば実用十分な性能を持っている
だから、無条件にVBAを見下してるのは老害の「可能性」がある
逆にVB.netはC#と同等の内部処理を行っているので、これを見下しているのは間違いなく老害と「断定」できる
同じランタイムで動く、ILで同等だから言語的にも同じステージにいるんだというのは乱暴すぎるな
最近のC#のモダン化には構文レベルでの利便性向上が数多く含まれる
野暮ったい文法のVB.NETがこれに追いつくのは難しい
というか最近はC#に対してVB.NETは機能面でも実装が追いついてない
もはや構文以外は同等とすら言いづらくなってきている
この辺りはMicrosoftとコミュミティのやる気のなさが露骨だね
言語そのものよりもそれを使う連中が嫌われてる
成立上VB6から移行してくる人が多いから、OOPな書き方ができないstaticおじさんみたいのが多いんだよ
Visual Studioの中だけで言えば、構文解析エンジンを何種類も保守する意味がだいぶ薄れてきた
そろそろ1本に絞ってもいい頃だろうとは思うがBASICやFORTRAN勢はやっぱり抵抗するのかな
今からVBAを覚える必要は全くない
違う言語をやった方が1億倍幸せになれる
こーいうとエクセルしか使えない環境の人ガーーーっていう奴がいるけど
そんなキャリアアップが出来ないようなクソ会社で時間を浪費するのはエンジニアとして失格
プログラマーとして合理的な思考をしよーな
今時エクセルなんてメモ帳程度だよ
普通はもっと便利な専用アプリ使ってるから今のクソ会社に騙されないでね
Excelは忖度エンジンなので、あれを超えるものは現れないのでは?
>>43 > 普通はもっと便利な専用アプリ使ってる
具体例出せない時点で無職の妄想やね
どうせ会社では使えないし使わせてくれないし → まちがい
自宅で好きな環境作ってたくさん覚えて転職 → せいかい
桁揃えとか連番とかにExcel使ってますよ私は。
B1に「=A1&REPT(" ", 10-LEN(A1))」を入れて、ピューっとドラッグするわけですよ。
B30までドラッグすると、A1の部分がA1~A30まで勝手に変化して埋まりますからね。
これは並みの忖度じゃないですよ。
プログラマこそExcel使うべきですよ。
そんなちまちまIDEの拡張書いてるよりずっと早いですから。
いやいや、これ使えるのと使えないのではずいぶん差が付きますよ。
たとえば、見積もりシートなんてどこにでもあると思いますが、結局、利益は見積もりで決まるわけじゃないですか。
見積もりシートをいじれるのといじれないのでは、幹部と下っ端の違いが生まれるわけですよこれ。
いじれる人が考えたパラメーターでいじれない人は入力するだけなわけですから、いじれなかったら結局事務の女とやることが変わらないわけですよね。
絶対覚えた方がいいですよ。
もうね、Excel使えなかったら社会人として終わってますから。
社会人の基本ですからねこれ。
Excelの使いこなしだけでも、年収200万くらいは変わるんじゃないですか?
見積もりとか今時Webアプリで共有出来るようにしてるだろ
なんでエクセルでやるの?
>>54 ウェブアプリで共有してたら他社と横並びだからに決まってるじゃないですか。
そんな当たり前のこと聞いてからかってるんですか?
利益は見積もりで決まる。
見積もりシートは門外不出。
あたりまえですよね?
電話は3秒以内にとる。
見積もり依頼は一時間以内に返事する。
簡単なルールですから必ず守ってください。
社内共有ならExcelでいいじゃないですか。
そもそも、外に出せないノウハウを自分で書けるのがExcelの良いところなんですよ。
なぜ経営者がExcelっ子を優遇するのか。
それはノウハウの漏洩を恐れるからなんです。
Excel使えない時点で人間として駄目ですからねこれ。
結婚するときはExcel使えるかどうか、本当に使いこなせているかどうか、ちゃんと確かめた方が良いですよ。
エクセルファイルって同時接続出来るの?
社外からもエクセルファイルにアクセスして確認とか出来るの?
外にいる人にも同時に見れるの?
もしかして今のエクセルはそーなのかね
>ID:lUyHhYKP
平日昼間に連投
終わってるのはあなた
時々、無闇矢鱈にExcelを憎悪する(笑9人間が出没するな ww
何かあったんか?とききたくなるわw
というかWindows自体、異なるデバイス間でドキュメント共有しますからね。
いずれWindowsは無料になるんじゃないかと思います。
オフィスの再インストールもプロダクションキーがいらなくなってたり、最近は結構変わってきてます。
>>68 時間というものは他人が作ってくれるものじゃないんですよね。
自分で作らないといけない。
そこでExcelなんですよ。
他人に神エクセルとスパゲティVBAを強要して相対的に時間的優位に立つ
Redmineを使いだしてからエクセルの価値が減った
ブラウザで情報共有するのが基本形になるとダウンロードしてファイルを開くまで時間がかかるエクセルは自然とNGになる
>>71 エクセルなんて時代遅れだよな
Webブラウザで共有が一番
端末も選ばないし
>>72 時代遅れではないかな
ただ適材適所ということ
エクセルにはエクセルの得意なシーンがある
小規模な表形式のデータ編集をするならエクセルが最適だと思う
逆にスクリプティング、ドキュメンテーション、情報共有にエクセルを使うのは無理がある
>>71 いやいやいやいや、ダウンロードとかいつの時代の話してるんですか。
>>71 Redmime?
Excel の使い方間違えてるだけじゃね?
>>76 そのとおり
使い方を間違えてる人が多すぎる
正しくツールを選定して本当にエクセルでやるべきことをエクセルでやるようにするとエクセルの出番がどんどん減っていく
ホントにExcelが無くなってシステムから必要な資料が一発で出てきてくれたら助かるけど、そんなの聞いたことない。
あるなら教えてほしい。
>>79 オープンソースの全文検索エンジン使っちゃいなヨ
XP時代の人みたいだな。
Excelが起動したいならコルタナさんにエクセルと言えばいいだけだし、何かを探したいならコルタナさんに言えばいいだけだろ。
オープンソースの検索エンジンとか、セットアップしてるだけで時間の無駄。
コルタナって全社の膨大なドキュメントから一瞬でほしいもん見つけてくれんの?
>>82 もしかして、エクスプローラも使ったことないんじゃないのか。
共有ってボタンあるだろ。
何のためにあると思ってんの。
あと呼び捨てやめてくれる?
コルタナさんはちゃんとさん付けで呼んでよね。
>>83 フォルダ共有のエクセル開くのとんでもなく遅いんだけど?
あんな遅いの我慢してたらストレスで禿げるよ
XP時代で止まってるんだろ。
まあいいから使ってみ。
win10だけどガッカリ性能だったわ
当たり前だけどただのデスクトップOSが全文検索サービスに勝てるわけなかったんだよね
>>87 いやいやいやいや、使ってたらフォルダ共有とか言い出さないだろ。
使ってるんだったら、コルタナさんにナタルコって言ってみ?
何も知らない私が、3年間java頑張ったら
このスレで、あなた方と会話できるようになれますか?
VBAでの記述について質問です
関数が入っているセルがあり、計算されると関数を抜いてに値のみにしたいのです。
処理の数が多く、値のみ貼り付けでは追い付かない状況です。
VBA初心者で調べてもわからず困っています。
コードをご教授ください。
>>91 セルの左上の▽のクリック(要は全シート選択)して
右クリックでコピー
新しいシートを開いて、
右クリックして、
貼り付けのオプションで
値のみを貼り付け(123のアイコンね)
じゃあかんの?
ちな2013
>>91 コードを求める前に、手動の場合(VBA使わない場合)はどう操作する作業なのかもう少し具体的に書こうや
>>92と同じことをブック内の全シートに対して適用したいの?
range.Value = range.Value
>>91 なんでそんなことするの?
また神エクセル?
結果だけを人に渡したい需要は世界中に存在する
勝手にいじられると困るとか計算式を知られたくないとか
Ctrl+A
↓
Ctrl+A
↓
Ctrl+C
↓
右クリック
↓
形式を選択して貼り付け
↓
値
foreach、cells.copy、special pasteで適当にすれば?
>>102 だから、君は無理してExcel使わなくてよろしいがな。嫌いなんだろ?
Excelもマクロも嫌いだけど仕事だから仕方なく使ってる
親のコネでやっと入ったバイトだからやめるわけにもいかない
5chに愚痴を書き続けるしかない人生
>>105 集団で働く以上は嫌でも周りの風習・伝統に合わせないとネ
チームや客がエクセルを使ってたらエクセルを使わざるをえないだろう
マネージャさんや手動テスト要員のアルバイタなど関係者がみんなITのプロとは限らないのでこれは仕方がない
もちろん個人端末にはエクセルをインストールすらしてない(というかそもそもLinux)
オープンソースやプライベートのプロジェクトでエクセルを使う理由は全くないからネ
オープンソースやプライベートのプロジェクトがないやんwバカw
>>108 Excelをバッスィーンと窓から放り投げ、貴様らのような雑魚と一緒に仕事はできん!、颯爽とLinuxの国へ向かうというのはどうか。
表やリストから抽出したデータを加工してソースの一部にするのは良くありがちなので、プログラマこそExcel使いこなすべきだと思うけどなあ。
その表がExcelならもちろん、HTMLのテーブルであっても容易に取り込めるのがExcelの良いところなわけで。
昔よくExcelは雑魚の道具、真のプログラマはSedとAwkを使う!とか言ってる人いたけどさ。
そんなものこねくり回してる暇あったら、Excel使ってマウスでちょちょいとやれば済むことなんだよね。
やったことの過程がシートに残る、結果ももちろん残る、すべて残る、そして渡せる。
これはとても素晴らしいことなのです。
>>111 テーブルデータはcsvか次点でjsonあたりでいいよ
ベンダロック強いエクセルはプログラマには合わない
>>112 ソースデータとコマンドがテキストで全部残ってバージョンコントロールできる方が良いだろ
つか渡せるのはエクセル関係なくね?
エクセル以外は転送禁止的な規約があるのかな
そりゃExcelを使ったことのない人の感想だわ。
使ってて使いづらいというのはわかるんだけど、使ったことないけど使いづらいって人が多くて困るわ。
俺はソースツリーに.oneと.xlsxを含めてる。
日常的な繰り返し作業ならシェル開いてコマンド打った方が楽なんだよな
たとえばだけど表形式のデータからgetterをコード生成したいなぁって思ったら
import-csv -path "props.csv" | % {
"public $($_.Type) get$($_.Name)() { return $($_.Name); }" }
って1行打つだけじゃん?
エクセルだとキーボードとマウスでガチャガチャやらんといかんしデータもcsvからシートにインポートしなきゃならん
めんどくさすぎ
csv作るまでの過程で、Excel組は帰ってるんじゃ?
>>117 psのcsv読み込みは#混ざってるとデータ消えるって本スレでやってるじゃん
1行どころか使い物にならない
>>119 確かにそれは意味不明な仕様だけど実用上困る事はないよ
import-csvは#あっても消えないし
catからConvertFrom-Csvに繋げたいならrawオプションをつければいい
任意のコマンド結果をConvertFrom-Csvに繋げたいならOut-Stringを挟めばいい
エクセルで作業する忍耐力があるならカンタンだな
なにかいい入門書を教えてください
入門者のexcel vbaという本は、簡単でしたので、次のステージに行きたいです
VBAなんか本いらん。ネット情報だけで充分過ぎる
とにかく色々かけ。そして作れ
>>122 レスありがとうございます
満員電車電車移動中に勉強したいので、本がいいのですよね
>>119 このスレで他ツールのCSVの取り扱いにケチつけるとかギャグか何か?
世界で一番CSVぶっ壊してるの間違いなくExcelだぞ
A
1 2018/04/23
2 2018/04/25
3 2018/05/10
4 2018/05/28
5 2018/06/03←今日
のようなデータがあるとき、昨日以前で直近の日付のある行を取得したい場合のコードを教えていただけませんでしょうか?上の例の場合、4行目となります。
countaで最大値を取って-1した行を取れば良いんじゃないか?
>>127さんお返事ありがとうございます。
ただ、それだと5行目がない場合に3行目が返されてしまいますよね。今日の値があるなしに関わらず昨日以前の値がほしいのです。
>>128 行数を取得したいのか、それとも値(シリアル値)を取得したいのか。
日付データは当然、昇順ですよね?
グラフの判例項目を足したり削除したりしたいのだがムズイ
マクロの記録で録ったのを流用してもうまくいかない時があって難儀してるわ
>>126 これは普通にmatchでいけるよね。
バイナリサーチモードで。
>>129 何行目にあるのかを知りたいのです。
昇順です。
>>132 r = Cells(Rows.Count, 1).End(xlUp).Row
If Cells(r, 1) = DateValue(Date) Then r = r - 1
>>133 ニホンゴムズカシイネ^^
VBAよりまず読解力
もうすぐ廃止されるかもしれんVBAを本気で覚えようとするモチベが湧かないわ
本当ならめでたいことだが
VBA廃止ってどこ情報だよ
python使いたいならLibreOffice使えば?
>>132 dim i as integer
i=1
do
i=i+1
loop while cells(i,1) < date
msgbox i-1
エラー処理とからは無しだけど。
最終的にPDFにして送るんだからExcelにこだわる意味って…
昔の職人さんが包丁一本で生きていけたように、今はExcel一本あれば世界中どこでも生きていけるからな。
>>145 1行目に入ってる項目名がスワヒリ語だったとしても?
フォルダ内にあるファイルがそれぞれどんな中身なのか、一つづつプレビューか開くかしないと判らず死にそう
1つずつ開いてスクリーンショット取らせるようにマクロ組んでみたけど、タイミング、ウインドウ表示の問題で上手く回収出来ないみたい
何でもかんでも1つのブックに詰め込むからそれが何のためのブックなのか曖昧になる
そうなると適切なブック名を付けられなくなって中身が分からなくなるしエクスプローラーで見たときの検索性も低くなる
そしてエクセル使いはファイル数が少ない方が良いと言ってシートを増やしまくる傾向がある
チームでエクセルを使うならこのストレスには耐えるしかない
民主主義では数が多い方が正義だからね
今でもデータを別ファイルでもDBにしてもアクセス出来るじゃん
出来る。のと、そうなっている。の違いは大きいよな。
どこで聞いたら良いのかわからないのでここで…
4Kモニタ買ってDPIいじったらExcelのオートシェイプが歪んで印刷されるようになりました
この歪み具合というか補正係数みたいなのを導き出す方法ってありますか?
縦にズラーっと1000以上データが入ってて
5回以上同じ値が連続するセルを色づけするvbaを作って貰えませんか?
入力ごとに自動実行してくれるとなおありがたいです
~~が出来ずに困っています、何かヒントをいただけたら有り難いのですが
と言ったら別に頭にこないだろ。作ってもらえませんかと言われただけで死ねとか失せろと言うのは、
表現だけに拘った愚かな対応だな。
すいません端折りすぎました
ほとんど自力で作成はできてるのですが、
判定させるほぼ全てのセルに計算式が入っていて、見かけ上は空白セルでも計算式の入ってる所は全て同じ値判定になって困っているのと
自動実行のやり方が分からないといった感じです
質問の仕方を間違えたみたいで申し訳ありません
自分のレスは忘れてください
スレ汚し済みませんでした
すげぇ 片手に余るレスでお客さん追い返してやんの
桜井佐那(戸田恵梨香)が来る前の崖っぷちホテルか
>>158 がくっきー(野生爆弾)の顔で睨んだとイメージ
>>156 作りかけのファイルアップしてくれたら何とかできるかも。
イベントの条件など、その人にしか分からないことが多いから自分でコード書くのが一番いいんだけど。例えばA列限定なのか、A列からJ列なのか、全ての列なのかでコードは変わってくるでしょう?
データも、縦方向に連続しているのか空白があるのか、空白が5行続いた場合どうするのか、空白と0を区別するのか、などなど。
あと、ここよりエクセル総合質問スレの方が親切な気がする。
つーかそんだけ条件はっきりしてんならちょっと考えたらわかるやろ。しかもほとんど自力でって言ってんだし
>>160 見かけ上は空白セルということは実際の値は何でしょうか、例えば文字列""であるとか。
自動実行は
>>163のURLが分かりやすいですが、もし文字化けしているのならばWorkSheet changeで調べると良いかと思います。
>>164の意味がわからない
うちでは
>>163のリンク先は普通に見えてるけど、文字化けして読めない環境の人もいるってこと?
質問
再利用性高いプログラム書いたとしてそれをどこに保存してどう活用するの。
例えば〇〇出来るマクロ作れ!言われてファイル開く部分は前作ったsubプロシージャで良いなと思っても今は前のソースからコピペしてる
クソなことしてる自覚はあるけどどうすればクソ脱却するか分からん
>>169 MIMEの文字コード種別の記述と実際の文字コードが違うとかあると、ブラウザによっては文字化けするよ。
>>169 lPhoneのJanestyle アプリで開いたから文字化けしてた
流れ的に高度なネタなのか判断が出来なかったので
>160
計算式が入っているってどういうことだろう
>>169 原因は
>>171なんだろうけど大抵のブラウザはMIME無視して文字コードを指定して表示する方法がある
そんなことも知らないで
>>164みたいなレスする奴のレベルは知れてるから相手しなくていいよ
>>170 C#かVB.NETでCOM dllを作ってシステムに登録
ブックから参照の追加で↑を再利用
かな
addinでもいいんだろうけど使いにくかったので俺はaddinの利用をやめた
>>176 addinてなんだっけ?
自分はexamの運用で特に不自由感じてないけど、使い方によってデメリットあるのかな
クッソ、さっきから頭の中で小さな男女が楽しそうにマイムマイム踊ってやがる。
シートをコピーして名前を付けるときにすでにそのシート名が存在し、重複した場合、メッセージとして、"既にその名前のシートは存在しているのでコピーしません。"
とメッセージボックスに表示し、シートをコピーしないようにしたいのですがどのようにすればよいのでしょうか。
現状は、重複する場合、コピーの元となったシートに(2)などデフォルトで付いてしまってこまっています。
どなたか教えていただけると幸いです。
>>182 事前に名前を取得すればいいだろ
馬鹿なの?
>>182 Private Sub hoge()
Dim title As String
Dim pro As String
Dim default As String
Dim rtn As String
On Error GoTo Errhd
ThisWorkbook.Worksheets(1).Copy after:=ThisWorkbook.Worksheets(1)
title = "シート名の入力"
pro = "追加したシート名の名前を入力して下さい"
pro = pro & vbCrLf & "キャンセルすると規定のシート名です"
default = "ここに入力してね"
rtn = InputBox(pro, title, default)
If Len(Trim(rtn)) <> 0 Then
ActiveSheet.Name = rtn 'ActiveSheetは使いたくないなー
End If
Exit Sub
Errhd:
If Err.Number = 1004 Then
MsgBox "シート名が重複してます。規定のシート名にします"
Else
MsgBox "エラー:" & Err.Description & "エラーNo:[" & CStr(Err.Number) & "]"
End If
End Sub
プロさんはソースコードレビューでコメントの日本語の指摘ばかりうけるので
ここで日本語の指摘して憂さ晴らししとるんやで
察してさしあげろ
>>189 いやそもそも
>>182の要件を一切満たしてないし
読解力はどこへ行ったのか
>>182 勝手に(2)になるってことは、シートのコピー自体をマクロでやってるってことかな?
1枚だけならともかく、複数シートのコピーとか考慮するとかなり難しいと思う。
1枚でも同じ名前があればコピー中止するのか、(2)になるのだけを中止するのか。
現在のコード見てみないとなんとも言えないを
foreachでシート名取得すればどうとでも出来ねーか?
ForEachでWorksheetsコレクション回してコピー元のシート名と一致するか見れば済む話だろ
答える側のレベルも低すぎ
For Each 回したりするくらいならこうだろ
Dim wks as Worksheet
On Error Resume Next
Set wks = Worksheets(sheetname)
On Error GoTo 0
If Not wks Is Nothing Then …(重複時の処理)…
182です。
みなさんありがとうございます。
今の状況はこんなコードです。
Dim i As Long
i = Worksheets("マスタ").Range("B3").Value
Worksheets("鑑").Copy After:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = i
というコードです。
こんな表を書きたいのですが、どのようにコードを書けばいいのでしょうか?
>>196 これならcopyの前に、その名前のシートがあるか判定してアラート出せばいいでしょ。
Sub test()
Dim myShName As String
Dim myWS As Worksheet
Dim myFlag As Boolean
myShName = Worksheets("マスタ").Range("B3").Value
For Each myWS In Worksheets
If myWS.Name = myShName Then
myFlag = True
End If
Next myWS
If myFlag = True Then
MsgBox "すでにあるためコピーしません", vbInformation
Else
Worksheets("鑑").Copy after:=Worksheets(Worksheets.Count)
Worksheets(Worksheets.Count).Name = myShName
End If
End Sub
ごめんなさい。197はスレを間違えました。失礼しました。
>197
ふつうにマクロの記録でできると思います。
が、それをマクロでやる意味があるのかどうかは分かりません。
手作業でなくマクロを使いたいのはなぜ?
>>196 flgを立てないパターン。
Dim sheet_name As String
Dim ws As Worksheet
sheet_name = Worksheets("Sheet1").Range("B3").Value
For Each ws In Worksheets
If ws.Name = sheet_name Then
MsgBox "alert", vbInformation
Exit For
Else
If ws.Name = Worksheets(Worksheets.count).Name Then
Worksheets("Sheet1").Copy After:=Worksheets(Worksheets.count)
Worksheets(Worksheets.count).Name = sheet_name
End If
End If
Next
ファイルの上書き保存を禁止するマクロって組めるの?
それともファイルを開いたら自動的に複製が作られるようなのを組んだ方が楽かな
チームで1つのファイルを使ってて加筆することはあっても消す事は出来ないようにしたい
>>205 before save イベントで、ある程度はできそうだけど、「上書き保存できないように」「加筆することはあっても消すことはできない」あたりが、ちょっと何をしたいのかよく分からないですね。
悪いこと言わないからWebアプリを覚えた方が良いって
共有も簡単
同時入力も出来る
端末も場所も選ばない
覚えるのはSQL C# html css JavaScript
たったこんだけで飛躍的に変わるんだから
>>205 エクセル上の上書き保存を禁止するだけなら、プロパティで読み取り専用にする方法と、Open時にパスとRead Onlyフラグを見て判定する方法と、before saved時にcancelする方法が考えられる。application.UserNameと組み合わせて自分以外は保存出来ないようにするとかね。
びふぉーせーぶきゃんせるしたらマクロほぞんできなくねて思って調べたらマクロ実行中にcancel trueにするとか書いてて目から鱗
使わんけど
>>205 >>207の言う通りファイルを複数人で共有して管理するなら
SVNとかTFSとかGITとかの導入を考えた方がいいかも
それなら間違って書いて上書きしてしまっても誰がいつ書き換えたかも分かるしすぐに直せる
もちろん何かしらでファイルが消されてしまってもすぐに復活出来る。
個人や会社の研修に使う程度の小規模のものなら
これをONE DRIVE、GOOGLE DRIVE、DROP BOX等と併用して使えば
インターネットに繋がる端末であればどこからでも
参照することが出来るようになる。
ただしセキュリティ面に関しては自己責任で。
ビジネスマンは認証なしファイルサーバーでエクセル共有が常識
徹底的に無駄をそぎ落とせ
>>214 共有ってもエクセルって同時に開けないでしょ?
>>215 エクセルを共有し、複数人で同時に書き込むの面白いよ
会議とかでエクセルで議事録を書き、それを共有する
(同時にプロジェクターで映し出すのもいい)
それを各自が見ながら発言し、適宜各自が修正などを加えていく…
4~5人のお馴染みのメンバーによる会議なら、議事録作成はこれが一番手間いらずだったな
共有ってのは情報を共有するってこと
ファイルがみんなの目に触れられるところにあればそれは共有してると言える
同時に開けるか否かは関係ない
社長のスケジュールを社員全員が共有する、みたいな
入力しにくい、同時作業しにくい、検索しにくい
エクセルは情報共有ツールじゃないということだ
実は表計算ツールなんだよね
ExcelはDTPソフトにもデータベースソフトにも統合開発環境にもなる
何か一つしかアプリをインストールできないとなれば間違いなくExcelを選ぶ
じゃあなんでexcelがこんなに普及してんの?
ここであれこれ名前が上がるけど、マイオナにしか聞こえん
普及してるのは最初から入ってるから
でも今では会社じゃほとんど使わないですよ
使ってもメモ替わり程度
それ以上の用途はそれぞれの専用アプリを使います
なければWebアプリを中心に作ります
エクセルメインって弱小零細企業なんだろうけどテクノロジーは恐ろしいスピードで変化してますよ
今はPDFが多いだろ
エクセルとかワードファイルなんて必要項目以外も編集出来ちゃってもとファイルの意味ないじゃん
いつの時代の話をしてるの?
俺は派遣でかなり大きな会社(SONYとかと同レベル)で働いているけどExcelめいいっぱい使ってるぞ。
VBAも使いまくってる。
というかVBAの仕事なんだけどね。
現実と願望の区別が出来ない人がいるみたいだね。
それが進むとコンピュータ使うのなんて中小ぐらいしかないなどとなる。
派遣の人にさせる雑用事務仕事ならエクセルくらいしか使えないだろうから仕方ないかな
>>228 まさにこういう人の意見なんだけど、何をもってほとんど使わないと言ってるんだろう?
そんなにたくさんの会社を見てるの?
入力装置としては悪くないプラットフォームだと思う
もちろん神エクセルは論外だけど
小規模のテーブルデータをサクッと作るには便利
ただエクセルのままデータや文書として交換するのはやめてほしいね
>>231 お前より給料貰ってるけどな。
言い訳ばかりじゃたかが知れてる。
何を言っても零細は間違いというわけだ。
ID:kgcyA64B
いつものフリーターの妄想です
フォームを使っていろいろ勉強しながら遊んでるんですが、コードが長ったらしくなるときはcallで別に書いてるんですが、functionの使いどころというかこういうときは絶対functionだ!ってあるんですか?
引数やら戻り値やらネットでみたりするけど使いどころがいまいちで...
>>240 何度も呼び出す機能はfunction
同じ処理をコピペであちこちに書くと
直すとき大変ですし
スコープが狭くなると把握しやすくなるよね
>>240 むしろ関数の方が基本
ここぞというところだけプロシージャ
>>242 戻りが必要なときがFunctionだと思ってた。
「ここぞ」ってどんなとき?
プロシャージャから呼ばれるものは原則ファンクション。とりあえずブーリアン型にしてtrueを返してるわ
プロシャージャはイベントハンドラと、ファンクションのデバッグ用くらいかなー
>>244 ProcからSubProcを呼ぶのは邪道ってこと?
値の戻し方だって
関数の戻り値か、ByRef引数か、グローバル変数か、セルか、テキストファイルかは自由自在
>何度も呼び出す機能はfunction
さすがプロは違うなあ
>>248 Document Properyもね。
>>248 Document Properyもね。
>>250 あちゃ、Properyってなんだ?
関数のありがたみがわからない初心者のみんなは副作用、参照透過性、例外安全という観点で関数とプロシージャを比較してみよう
それだけでスキルアップだ
コードがグンと洗練されるぞ
やったね!
> 副作用、参照透過性、例外安全
最近覚えたので使いたくてしょうがないんだろうな w
頓珍漢過ぎて笑うしかないけど
いつも行と列がわからなくなるんだがいい覚え方ある?
列方向とか言われると頭が混乱する
>>254 Row
Column
それぞれの先頭文字見たら
>>254 今時ほとんど横書きだから「行」と言えば横方向でしょ
一行目って言われて縦読みする奴はあまりいないし w
ありがとうございます
これで行列を判別できそうです
>>259 そのうち君にもわかる時が来る
めげずに勉強しよう
今はわからなくても大丈夫だ
>>261 ごめんねー、頓珍漢な勉強なんてしたくないから w
>>254 長文は3行にまとめろ
この時「3列に」とは言わない
これが行と列の違い
まあ自分もほとんどがFunctionでSubは数えるほどだな。
Subを使うのは求める値を直接値として返すのはデカすぎるときとか。
値を戻す必要のある手続きならFunction
その必要がない手続きならSub
原則的にはこれしかないわけだが
Functionの戻り値以外で値を返す手続きは例外的なものに限るべき
>>252 お前はVBAで、何と何を比較してるの?
>>266 あぁ、それなら認識通りだわ。邪道なのかと思った。
>>268 横だが、それいいね。今目に焼き付いたわ
>>266 > 値を戻す必要のある手続きならFunction
> その必要がない手続きならSub
複数の値を返したい時は?
> Functionの戻り値以外で値を返す手続きは例外的なものに限るべき
C# の TryParse() 系の奴は例外的だと言う主張ですか?
> お前はVBAで、何と何を比較してるの?
そいつには触れない方がいいかと
配列かユーザー定義、あとは引数を参照にして引数で返すとか。
そのプロシージャの内容で変える。
クラスにするとか場合によっちゃコレクションに複数のクラスを入れて返すとか配列を配列に入れて返すとかする場合も。
複数かどうかではなくそのプロシージャにとってどうあるべきかが重要。
>>271 結局FunctionとSubの使い分けは値を返すかどうかなんかとは関係ないってことだよね
>>242,
>>244,
>>252 sub も function も両方ともプロシージャです
functionにした事で起こる副作用って何?
可読性とか、解析とかに影響が出るだけで、動作自体はfunctionが完全上位互換だと思ってたんだけど。
どうせグローバル変数弄るんだから、どっちも同じだろ?
SubにしろFunctionにしろ、あんまり分割しすぎるのはBASIC的ではないので、可能な限りGoSubを使いましょう
>>270 >
>>266 >> 値を戻す必要のある手続きならFunction
>> その必要がない手続きならSub
>複数の値を返したい時は?
関係ないものを複数返したいなら多くの場合は設計ミス
関数の責務が複数あると考えていい
関係のあるものを複数返したい場合はそれらを含む別のクラスが隠れているのかもね
何れにせよ複数返したいと思った時点で冷静に考えを整理すべき
>
>> Functionの戻り値以外で値を返す手続きは例外的なものに限るべき
>C# の TryParse() 系の奴は例外的だと言う主張ですか?
いいとおもうよ
あれはパフォーマンス追求するときと並列処理、相互運用ぐらいにしか使わん
実際にref/outを使う標準ライブラリはほとんどない
ParseやTryGetValueは使用頻度が高く、例外でエラー通知するのはオーバーヘッドがあるからoutにするメリットの方が大きいと考えられて例外的に導入されたもの
>
>> お前はVBAで、何と何を比較してるの?
>そいつには触れない方がいいかと
>>280 > 何れにせよ複数返したいと思った時点で冷静に考えを整理すべき
で、結局どうするのさ?
> あれはパフォーマンス追求するときと並列処理、相互運用ぐらいにしか使わん
↑
↓
> ParseやTryGetValueは使用頻度が高く
結局よく使うのか使わないのかはっきりしろよ w
無理矢理反論してるのがバレバレだぞ
入れる穴が複数あるのに出す穴が1つってのが間違ってるんだよ
だから入れる穴から出す
もはやプロさんによるプログラミング脱初心者講座
エクセルマクロはどこいったんや
ほんま役に立たんプロさんばかりやなw
>>270 あれはあくまでもVBAでのSubとFunctionの使い分けの指針な
>複数の値を返したい時は?
複数の値を返したい時点で例外的な処理だと思った方がいい
複数の値が必要なら、複数の値をまとめた「何か」を一つ返すのが原則
まあ実際はそうガチガチにはやらんけどな
>C# の TryParse() 系の奴は例外的だと言う主張ですか?
まあ、例外的
あれは、変換が可能かどうかと、変換した値という二つの処理をまとめてるから
>>274 おれもそう思ってはいるが
VBAにはいまでもGoSub Return ってのがあるからなぁ
>>284 説明も反論もできないなら黙ってろよ w
>>286 > あれは、変換が可能かどうかと、変換した値という二つの処理をまとめてるから
どうみてもその処理はまとめるべきだろ
別々にやれと言うならちょっと頭おかしい
Sub 色の付いたセルの値をクリア()
Dim C As Range
For Each C In ActiveSheet.Range("A1:J25")
If C.Interior.ColorIndex = 15 Then
C.ClearContents
End If
Next
End Sub
で色の付いたセルの値をクリアしたいのですが、結合したセルからは値を消せない的なメッセージが出るのですが、結合しているセルに入っている値を消すにはどのようにすればよいかどなたか教えていただけませんでしょうか?
セルが結合されているかどうか調べて、結合していたら解除すれば?
>>288 C.MergeArea(1).ClearContents
神エクセルへの反逆は許されない
事務員さんに信仰を捧げよ
はじめまして
最近vbaでマクロ書くようになりました
Dim lastcol
Dim kokyaku
lastcol = Cells(2, Columns.Count).End(xlToLeft).Column
Set kokyaku = Range(Cells(2, 4), Cells(2, lastcol)).Find(顧客コード).Column
上記はマクロの一部分なのですがこれのColumnでオブジェクトが必要ですというエラーでるのですがどうしたらいいでしょうか。
ちなみにSetをとるとオブジェクト変数およびwithブロックが、、というエラーが代わりにでてきてしまいます。
>>293 これならエラーが出ないと思うけど
Set kokyaku = Range(Cells(2, 4), Cells(2, lastcol))
列番号を取得したいだけならSetはいらない
顧客コードは変数なの?
変数じゃなく「顧客コード」という文字列を検索したいなら
.Find(顧客コード)
ではなく
.Find("顧客コード")
と書かないと
関係無いとも思うけど、顧客コードを検索して見つからなかったらエラー出るぞ。
まずFindまでをオブジェクトに代入し、代入されたオブジェクトがNothingかどうかをチェックすべき。
あーなんだ
もうSubとFunctionの話は終わっちゃったのか
ちょっと来るのが遅かったな
>>294 列番号ほしくてColumn付けてたんですよねー
でもSetなくしたらとりあえず実行できました・・・なんでできるようになったのか謎です
>>295 顧客コードは変数です
ユーザーフォームで入力させてそれを判別してるような形をとっています
>>300 初めて1週間ですみませんorz
型式って指定したほうがやっぱりいいんですか・・
もう1つ悩んでることあるのでちょっと書かせてください
ユーザーフォームで顧客コードを検索してそれを別ブックに転記したいんですけどうまくいきません
繰り返し文だと i=0 To 5 みたいに回数を決めないと思いまして、代わりにdo until使ってるんですけどバグっちゃって・・
参考にコードと表のSS貼っておきます
ご教授願います
https://gyazo.com/08befaf20d8d06c1c09571710d6614b6 http://textuploader.com/dp3p2 確かウィンドウをサブクラス化し
てコールバック関数でゴニョゴニョ、、、
なんたらする時メモリーの番地が、あーたらで
それでふんくちおnを使うんだったような??。
今はこんなことしないのかな。
Dim i
i = 0
Dim kekka
Do Until kekka = vbCancel
この辺が意味不明です。
i=0
だと定数みたいになってる。
kekkaも値自体が入ってないのに、do until kekka =2と書かれても。
(vbcancelは組込定数なので、2という数値と同じ)
型は指定した方がいいと思います。
>>305
単純に変数宣言したかっただけです;;
意味合いとしては、
「処理を続行しますか?」→OKだったら最初のユーザーフォームを起動させて転記する。
→Cancelだったら転記をしてプログラムを終了。
という感じなのですが。。 プロパティとメソッドの違いがわかりません
判別する方法とかあるんでしょうか
>>307 一度新幹線に跳ねられてみればわかるかもよ
>>307 判別して何がしたいの。
VBAなら深く意識しなくて困る事がないんだけど。
Propertyとあるのがプロパティ
そうじゃないのがメソッドだ
>>307 シンタックスシュガーというやつだよ
違いはあるともないともどっちともいえる
>>303 クオーテーションマークでコメントアウトが出来ますので、どこでどのような処理をしたいのか書いておくと良いかもしれません。
>ユーザーフォームで顧客コードを検索して
UserForm.Valueで入力された値を参照してから該当の表内に検索をかけることになるでしょう。
>Do Until 文
Do Loop文の中でIf kekka = vbOK Thenがコメントアウトになってますのでこれは機能しません。
また、Loopを記述するより先にEnd ifで完結させないとエラーが出るはずです。
書き慣れるまでは変数宣言は上部にまとめておくのも一つの手かと思います。
サーバーに入ってきた仕事の素材を連番のフォルダを手動で管理しております
現在画像のような感じにサーバーに素材が入ったのを確認したらとなりのセルを塗りつぶすというのを手動で管理しています
それを特定のフォルダをexcelで監視させて新しいフォルダが入ったらとなりのセルを
自動で塗りつぶす、ということをvbaではできないでしょうか
可能であればコードも教えていただければ幸いです
画像url↓
この程度でもお金が発生するんだから知識の安売りしちゃダメだよね
日本企業は外注には何十万、何百万も払うのに自社の社員が書いたものはタダだと考えてる。
>>317 本題からはそれるけど、セルを塗りつぶすってのはセルの背景色を直接指定するんじゃなくて
条件付き書式にした方がいいと思うよ。
つまり該当セルに「1」とかの値を入力すると勝手に赤い背景色になるようにしとく。
値ならあとで利用しやすいからね。
>>324 VBAスレで吠えるトンスルランドの寄生虫WW
>>323 そしてセル数のぶんだけ重くなる。
規模によるけどね。
色付けても検索とか抽出とか面倒なだけだから自分なら記号でも埋めるかな。
色付けるとすれば視認性をあげるためのオマケ。
わかったつもりになってUIを根底から否定してしまったプロさんw
>>317 開始時刻から終了時刻まで一定間隔でマクロを実行するには?
http://www.max.hi-ho.ne.jp/happy/YNxv9c134.html を使って
>>321のDir関数を使って指定のフォルダをチェック
みたいな感じで
>>317 こんな馬鹿に管理させる馬鹿会社があるのか
アマチュア事務員VBAerしかいない中小企業なんてこんなもんでしょう
>>326 >そしてセル数のぶんだけ重くなる。
?
条件付き書式だらけのワークブックなんて開くのもしんどいわw
>>332 条件付き書式「だらけ」?
ひとつで十分だよね?
>>333 ああ、
>>323は
>>317の個別の事例に特化した話だけをしていたってわけね
俺は(恐らく
>>326も)てっきり
>>323は一般論を話しているものと思ったよ
「本題とはそれるけど」って書いてあったからかなあ
一般論としてはセルの背景色は条件付き書式で塗りつぶすべきなんていう馬鹿な話はないから
>>334 そりゃだって
>>317の画像で言えばB列に条件付き書式を設定すれば十分だし、
色はおまけで値で管理したいだろう?
>>334 Excelの操作(データ整理など)で、
条件付き書式でセルの文字色や背景色を変更するのは一般的なことだと思ってたんだが、どういう点がバカなんだろ?
アマチュア事務員さんの一般論とプロの一般論は異なるということだね
プロはセルに一個一個色を設定するなんてめんどくさいことはしないよ
状態が1つ変わるたびに別の状態を同期させるようなコードは手続き的で非常にメンテナンスしにくい
まずは問い合わせで解決することを考えよう
これを覚えてまた1つ賢くなったね事務員さん
今のエクセルは下手なVBAerが組んだらゴミの山生成するから気をつけたほうがいいのは間違いない
>>338-340 馬鹿は何も考えない方が良いんだってよプロさんw
>>336 それも度を過ぎると再計算が走って重くなるからVBAで色を塗ってしまったほうがいいという一般論
度を過ぎたときにおこる問題を回避するのが一般論という
その程度では重くならんだろ
どんだけ巨大なモンスターブックだよ
重くなってから考えればいいと思うよ
仕様で決めたこと以外は極力手を抜こうぜ
金にならない仕事を勝手にやって問題起こして仕事増やす奴
FileCloseとSub Procの寿命について質問です。
作業中のSafe Backupを作成しようと思い、Shift+Ctrl+Sに
① "_01" で終わるファイル名を、"_00" でリネーム保存
② 続けて "_01"でリネーム保存して元のファイルに戻る
といった動作を割り付けています。
この①の直後の時、"_01" はプロセス上にいないと思うのですが、SafeBackup
は最後まで正常に走り、"_01" ファイルがプロセス上に戻ってくるのが不思議です。
内部的にはどのような動きになっているのでしょうか。
期間にあったものを抽出する検索ソフト作ってて、optionボタンそれぞれ1年前~今日、2年前~今日、全期間ってあってdateadd関数計算して全期間以外はうまく出来るのですが全期間ってどう計算したらいいですか?
>>352 ネタ?
その程度の事をここで聞かないと分からないの?
嘘だろ?
非建設的発言は良くないでしょ。
>>352 でも質問に情報が全く足らないな。
検索されるものは何なの?
別シートに日付のついたデータがあって、そこから検索するとか?
DateAdd使ってるのも良くわからないな。
全期間ってのは他に検索条件が無ければ全データになっちまうと思うんだが。
>>354 テキストファイルから一列ずつ検索。
instr(1,strline,txtSrchWd)
これてヒットしたら、スプリットで切って配列に入れて、(5)に入る日付と比べて正なら抽出したくてやってます。
現在の日付からそれぞれ1年、2年前は計算でうまく抽出出来ますが、全期間は一番古い日付調べておく必要があるんですか?
>>355 全期間だから全部だろ、馬鹿なの?
それとも前提条件を全部書かない馬鹿なの?
君vba出来るんでしょとか言われて簡単なプログラム作成任されて作ったけど管理めんどくさすぎん?
初めはここは数字しか入らんよて言われてたからisNumericだけ判定してたのに数字以外入れると止まっちゃうから漢字とか諸々の対応させられた
そんな感じで他のinputとかアウトプットの要件がころころ変わる
そして全然動かんねーとか言われるイラつく
>>355 全期間ならば現在の日付からの計算は必要なく、一番古い日付を指定しなくともテキストファイルの最終行まで走らせれば良いのでは。
>>357 プログラムの仕様を決めるのはあなた
あなたが使用者に対してルールに沿った入力を求めるのは当然
道具は正しく使われるから道具として機能するのであって、猿に道具を渡しても壊れて返ってくるだけ
会社の要求をどの程度受け入れるか、もう一度冷静に考えたらどうか
個人的には、猿には付き合う必要ないと思ってる
>>357 人に使わせるような真面目なツールにVBAは無謀でしょ
品質担保しようとしたら凄まじいコストがかかる
自分しか使わない、数行で終わる、使い捨ての、エクセル操作に特化したマクロがVBAのターゲット
>>307 一番簡単な方法はその都度オブジェクトブラウザで確認すること
アイコン表示されているから一目瞭然
>>357 バカほど我儘な要求を平気でするからなぁ。で、「俺は忙しいからプログラムなんて覚える暇が無いんだ、暇なヤツはいいなぁ」とか吐かしたりさぁ。
俺は「お前のオツムに合わせてたらキリがねえわバカ」ってあからさまに言ってるよ。だいたい、数字を入力するところに平気で文字を入力して「何jこれエラーとかマジやってらんない」とか。
やってらんねえのはこっちだっての!
使い方守れない馬鹿も馬鹿だけど本気で業務システムを作ろうってんなら
誰でも使えるようにデザインする努力も必要
入力文字種を守れない馬鹿がいる環境なら自由に手入力させる余地を残すな
とりあえずドキュメントなりマニュアルなりを作って
読まん奴まではフォロー出来ないとはっきり意思表示する
そっから先は職場の人間関係の話なので何とも
そういう人に使わせる前提のある程度しっかりした作りのアプリはエクセルみたいな非生産的なプラットフォームでは普通は作らないね
エクセルは個人用のちょっとした処理をサクッと実行したい時とかに使うといいよ
まあその個人用のちょっとした処理だと今度はPowerShellのほうが楽なんだけどな
帯に短し襷に長しってやつだ
> そういう人に使わせる前提のある程度しっかりした作りのアプリ
エクセルには無理なんやなく
プロさんには無理なだけやんけw
言い訳だけは上手やねw下手やけどw
VBAでUTF-8(BOM無し)ファイルを読み書きする最速の方法は何ですか?
ADODB.Streamだと遅いしBOM無しにするための2度読み書きでさらに遅いし
>>364 数字とか入力文字列の制限とかくらいはプログラム側でエラー処理するべきだろ。
>>367 程度にもよるが普通作る。
1回動かして終わりになる場合は作らんが。
>>369 アセンブラで最適化したDLLを作って読み込む
>>369 nkfでBOM付けて処理して、ポスト処理で外すw
2007から2016に変えたらCSVの処理速度なんかがかなり低下した気がするんですが気のせいかな?
>>369 コードページを明示的に指定するdllを作るのがいいんじゃないか?
俺はそうしてる。自動判定なんていらん。(言い過ぎ?)
>>374 CSV言うても読み方も書かんとわからん。
workbook.openなんかはバージョン上がるにつれてどんどん遅くなってる。2003までは一瞬だったのに・・・
>>369 こいつ程度の頭でもできる最速の方法なのか?
そもそも最速の定義は何なのか。同一ハードウェア上でという前提条件があるのかないのか等々
馬鹿は考えもなしに「最高とか最速」などの用語を使いたがる
>>376 あー、基本workbook.openで開いてます…
ここで結構時間かかってるのかな
あと、セルの数字を一つ一つ計算したり置き換えたりって処理もかなり遅くなってるような
配列でまとめてとりこんで配列で吐き出すって感じの方が速いのかな
まだ色々と確認中なのですがいろんな物がこれまでよりやたら遅くなってる気がして…
表計算ソフトなんだかた視覚効果なんかいらないと思うんだが何故かMSはそういうのに拘りがあるようで
それいったら殆どの機能が不要になるけど
表計算の上に無秩序に機能を拡張したコンセプトのよくわからないソフト
素人にはこういうのがいいんだよ
>>380 スマホタブレット世代の若いヤツはそれをいいとは思わないだろ。
誰かwbsのイナズマ線を自動で引いてくれるソース書ける人いない。。。?
どこから初めていいかすら、分からない。
>>382 まずは息を30分停める練習をしてください。
それができたら来てください。
>>382 1. WBSの入力サンプルを用意する
2. 1に基づいてイナズマ線を手動で書いてみる
3. 2に基づいてどういう入力のときにどういう出力をすればいいのか整理してパターン化する
4. 3に基づいてコーティングする
5. 4を動かして2と同様の出力になるかどうか確認する
>>382 > どこから初めていいかすら、分からない。
流石にその状態だとこっちもどこから教えたらいいかすら、わからん
Excel 稲妻線 あたりでググって適当なアドイン使ったほうがいいんじゃね?
Project買えばいいのに
これだからExcel陶酔者は困るんだ
VBAなんだから、何はともあれマクロの記録からだろ。
VBAの本に書いてあるコードをひたすらパソコンに写経して実行してればVBAできるようになりますか?
>>382 まずはWBSとイナズマ線の定義を明確化して
全てはそこからだよ
「イナズマ線」でググったらこんなの出ましたけど?
イナズマ線を簡単に引くExcelマクロを作りました
http://www.fin-itnews.com/entry/2015/08/12/031032 Sub イナズマ線描画()
'FreeformBuilderオブジェクトを宣言
Dim InazumaLine As FreeformBuilder
'始点を設定
Set InazumaLine
'以降の点を結んでいく
'繰り返し用変数i
Dim i As Integer
'列の位置固定用変数
'上から下にセルをなめていく。0以外の数値ならイナズマ線を引く
For i
'数値以外はスキップ
If Not () Then
'0もスキップ
ElseIf
'イナズマ線を引く(正の数なら>、負の数なら<)
Else
End If
Next i
'終点を設定
'イナズマ線を描画
'見た目の編集(青の太線)
>>386 Redmineでもなんでもいいけどオープンソース使えばいいよ
ビジネスマンなら無駄な出費は最小限に抑えなきゃ
イナズマ線でほんとにイナズマになるのってまずいんだから
直線引いとけばいいんじゃいないかな
1.シェイプの直線を挿入するのをマクロの記録で記録する。
2.記録されたコードの中で始点と終点と思われる部分を適当に変えて実行してみる。
3.2で得られた任意の2点で直線を引くマクロを2回実行し、その時1回目の終点と2回目の始点を同じ座標にする。
4.3の実行結果後、マクロの記録で2つの直線をグループ化するのを記録する。
5.n個の直線を引いた後で一度にグループ化するように処理を変更する。
6.n+1点の配列を引数にして上記を実行するようにプロシージャを作成。
マクロの記録は余計なコードが大量に含まれるから関係ないものを削除して実行を繰り返すと良いコードになる。
>>382 まずは全裸になって町を駆け抜けてくさい
(´・ω・`)b
特にエラーがあるわけでもなくブレークポイントを設置しているわけでもないのに
黄色い矢印が出て止まるのってなんなんでしょうか
必ず起きるというわけでもなく出たり出なかったな上に続行ボタンを押せば特に問題もなく終了するので
発生原因がまったくわからないのですがこれバグかなんかですか?
@2013
>>400 必ず止まるわけじゃないだろ。
バグかどうか分からんけど、わりとよくある。
PC再起動で直る。
ウィンドウフォーカスが外れるとオブジェクトが使えなくなってしまい止まるコードは良くある。
コーディング上の問題
>>400 「VBAProjectのコンパイル」を実行してからF5押してもダメか?
たまーに同様のケースでこれで解決する場合があったんで。
>>400 エラー起きた後に続行すると動くって事は
画面が完全に表示しきれてないのに読み込もうとするからじゃない?
初心者ならエラー起きる箇所の前にwait入れる
プロなら完全に表示しきったら次の処理に行くようにする
>>400 多分バグ
ブレイクポイントを設定したままセーブして
立ち上げ直すと起こる奴のことじゃないかな?
そこにブレイクポイントを再度設定して
外してやって起きるか試してみ?
セル内にアルファベットがあるかどうか判断する関数おしえて
>>410 VBAじゃなくて関数でいいの?
そしたら
>>411に聞いたら?
きっと親切に教えてくれるよ
なんでエラーが出たことになってんの?
全く理解出来ん。
Sumifsの引数って内部的にどうなってるんでしょう?
ABABAB…って繰り返すので、
Byval何とかAs何とかってのが延々並んでいる状態?
それとも繰り返し用の書き方がある?
2007でオブジェクトブラウザでみると、ずらずらと引数書いてあるな
テーブル1に、row数が同じテーブル2を合体させたい
データ、書式設定、条件付き書式やドロップダウンリストごとテーブル1に合体させたい。
どうやるのが無難ですか?
全く作り方が思い付かないからご教授お願いします。
①入力の所に数字を入れる。
②up or downに数字が入れる。
例 入力45 up1 down2
③upとdownを計算 -1
④入力45がコードのCとDの間で下のDとして③で計算された-1上を選択。
⑤判定が×だから○まで上に上がりBを選択。
※計算が+なら下へ、判定○ならその左のコードを取得、×なら○まで下へ。
※上下に移動していって該当がない、移動なし、判定×ならエラー。
こんなのを作りたいんですが上下移動がどうしたらいいか分かりません。
>>420 ループが書けるなら何も難しいポイントはないと思うけど?
>>419 テーブルで結合せず普通にRangeでくっつけてテーブルにすれば良いのでは?そっから書式はどーにでもなる
>>421 Do while Not EOF(filNo)
Line Input ♯filNo,strtxtLine
ReDim Presrve arrline(cntLine)
cntLine=cntLine+1
Loop
実際はこれでtxtファイルを読み込んでから1行ずつ見ていって判定処理したいんだけど、無理かな?
>>424 無理じゃない
テキストファイルを配列に読み込んで処理すればいい
配列はワークシートのセルとまったく同じ構造なので、ワークシートで動くプログラムが作れたらRange (Cells)の部分をArray型に置き換えるだけ
i=1
range("i:2").select
でエラーが返ってくるのはなぜなんだぜ?
変数を含んだ行をコピペしようと思って、これでシンプルにできると思ったらできなかった
平成30年のつもりで
H30 = 2018
とかやってた時に
Range(“A30:H30”)が”A30:2018”と解釈されたら困るだろ
VBA昨日から始めたんですが
小数点第1位の繰り上げ処理がしたいけどわかりません
cells(1,1)=cells(1,2)/3とか簡単なやつをひたすら書いてるだけなのですがどうか力を貸してください
>>430 worksheetfunction.roundupで良いんじゃないの?
>>431 すいません、切り上げです。
>>432 マクロの結果が123.1だったら124にしたいってことです
>>433 切り上げたいセル=そのコードでいけますか?
worksheetfunction以外ないでしょ。
わざわざvba使う意味がよく分からないけど。
切り上げ程度の簡単な処理でも、VBAだけで全部作るよりWorksheetFunctionの方が速い?
知らん実際に作ってみろよそして共有してくれ
家じゃexcel無いしめんどい
めんどいのに意味のないレスはしたくなる馬鹿のジレンマ
ジャップ企業「わざわざ車輪の再発明をするこたぁねー」
アップル「iPodでウォークマンを再発明しました!」
アップル「iPhoneで携帯電話を再発明しました!」
アップル「iPadでタブレットを再発明しました!」
iPodがウォークマンの再発明としか思えないから
日本からああいう製品は出なかったんだろうな
アップルの成功はAppStoreをオープンにしてアプリを爆発的に増やしたこと
日本企業はオープンにせず独自企画が好きだもんな
iPodの頃なんて大して注目されてなかったし
どこがじゃ。
全然オープンじゃねえだろ。
iPodのインパクトだろ。
こういうものはガジェオタが飛びついて一般に浸透してくから、最初は一般に注目される必要は無い。
デザインの力は大きかった。
条件付き書式って名前とかタグみたいな個を識別できるようなプロパティないの?
条件にごちゃごちゃ付け加えると重くなるからvba側で操作したいんだけど
特定できそうなところでなんちゃって判定するしかないのこれ
ない上に知らん間に増殖する
全消しして追加がいいよ
>>446 > ない上に知らん間に増殖する
そうなんだよね
条件付き書式の整理とか統合とかのコマンドがほしいわ
>>447 確かに欲しい。でも作ろうと思えば作れる事に気がついた。
追加されるとは考えられないしやるか・・
ACCESSのフィールドをExcelに転記するとき、
例えばそれぞれ
1
2
3
4
5
と入っているレコードを
下から3つを転記したい(3、4、5の順で)場合どのようにすればよいのでしょうか?
CopyFromOrdersetでRowsMaxを3にすると1、2、3となり、下の3件3、4、5の順では転記できないでしょうか?
SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
どなたか解決策を教えていただけないでしょうか?
>>451 https://msdn.microsoft.com/ja-jp/library/cc408450.aspx >コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない
>>451 https://msdn.microsoft.com/ja-jp/library/cc408450.aspx >コピーは Recordset オブジェクトの現在の行を開始点として行われます。
らしいから、現在行を3行目にしとけばいいんじゃない
>>452-454 早速にありがとうございます。
確かに転記後にソートでどうにでもなりそうですね。
できれば転記時にできればとおもっておりました。
カーソル位置を3行目にする事で解決はおっしゃるとおりですね。
ただ私の最初の前提が不十分な解説のため申し訳ありません。データが増えていった場合でも下から3つを取り出したい場合はどうすればよいか苦慮しています。
ExcelVBAのように、Offsetが使えたらデータが増えていっても下から3つだけを取り出すという風にできていいなと思うのですが。
>>455 topを使って馬鹿はいい加減に引っ込め
>>455 現在行をn-3行目にしとけば良いんじゃない
>>456 単純にtop取るんじゃなくて、descでorder byしてtop取ったやつをもう1回order byする必要があるんだが
そんなSQLがすらすら書けるようなレベルのやつはこんな質問しないし
もう一回order byは必要無いだろ。
Excel側で対処すれば良い。
>>457 こいつみたいに、後から出てきて回答してることをグタグタ書く馬鹿も来なくていいよ
>>458 それが自分でできてりゃ
>SQLのORDER BYを使うと5、4、3の順となりなかなかうまくいきません。
てな事にはなってないだろう
マクロ・VBAの勉強がしたいです
どのような方法で勉強を進めるのが理想でしょうか
エクセルのレベルはVLOOKUPなどのメジャーな関数を使える程度のレベルです
ちなみに会社員です
>>463 何をしたいのか明確な目的が必要
楽したい!ってモチベーションがないと続かないよ
トライ&エラーを繰り返すこと
教本だけでは身に付かないから、実践は必ず必要
vloookupをdisる様になったらエクセル使いとして一人前
>>463 今からプログラミングを覚えるならVBAなんて化石言語はやめましょう
言語的に近いC#がいいと思いますよ
VBA程度の事は全て出来ますしもっと色々と出来るので推奨
体系的に勉強する価値なんてないよ
やらなきゃいけないことをググって試してみての繰り返し
プログラミングのスキルやセンスを磨きたいなら他の言語で学んだ方がいい
>>463 こんなところで聞かなきゃいけない時点でもうダメだな
>>463 VBAを覚えて何がしたいのか知らんが、仕事で活用するなら
まず、エクセル関数をもっと覚えて関数で何とかできるようになりましょう
事務処理ならエクセル関数だけで大概のことはできる
VBAが必要な場面はあまり無いと思う。せいぜいファイル操作くらいか
すいません、processingについてのスレッドはありますでしょうか?
使いわけでしょ。
数千あるチェック項目の内、1日100個ぐらいずつをチェックしていき、その集計結果で1日の結果を関数で出し、更に1ヶ月のト―タルなんかを関数でやってたら重くてどうにもならなくなったりするし。
銀行でDBから取ってきたデ―タが辻褄があってるかを調べるなんて仕事をしたことが有るんだが、その為にシステム組んでる側の(と言ってもそいつが組んでる訳じゃない)奴がチェック用に用意したsumproduct多用ブックは酷かった。
触る度に5分とか10分とか待たされた。
VBAで組んだら一瞬になったけどね。
自動再計算を切るのも諸刃の剣だし。
プログラマじゃない普通の会社員がExcelを使うのにVBA勉強すんのは普通だろ。
なんで不必要なC#とかやらにゃならんのだ。
プログラマってほんと頭でっかちやな
VBAって二十年くらいなんの進歩もないよね
この言語を覚えて次に全く役に立たないじゃん
キャリアアップの為にも意味ないよね
>>473 プログラマじゃないとしても今時エクセルだけじゃ話にならんでしょ
誰だって日常的にディレクトリ階層とエクセル以外のファイルを扱う
ツールの拡張がスクリプト言語になってることは良くある
自分のWindowsを管理するにはpowershellを使うね
得に最近需要が高まってるのはREST APIやスクレイピング技術だな
いずれもVBAでもできんことはないが果てしなく古臭い構文と開発環境、貧弱なライブラリのせいで死ぬほど生産効率悪いんだよね
マゾにはオススメかもしれんがノーマルな人にはオススメできんな
>>474 VBAは進歩がないのがメリットとも言える。
pythonなんかは2と3で動作仕様が異なる上、モジュールのバージョンも気にする必要があって、別PCで同じ環境を構築しようとすると結構面倒。
その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
色々言語触ったけど、自分の結論としてはどの言語が良い悪いではなく、結局適材適所で使い分けが大事。
WindowsUpdateの影響で個々のPCで不具合でまくるが
もっと短いのにならないかな。
Vlookupとか長いので、GonとかPnとかさ。
Sheet1も地味に長いよね。
Werでいいよね。
事務員はプログラマじゃないからVBで十分
他の言語を扱うなら担当の部署に回すか外注する
部署で自分しか扱えない言語を触りだしたら間違いなくそいつは地雷
iPad上でもWinで書いたVBAファイルは動きますか?
ファイルをやり取り出来る?
「エクセルで十分」ってよく聞くフレーズだけど
「料理するには石器で十分」のような強烈な違和感を感じる
VBAって結構リストビューになかされない?最近win10になったけどバグる。
そもそもリストビュー使わない?
>>480 Office365じゃないとVBAは動かなかったはず。ファイルはやり取り可能だが
>>476 > その点、VBAはどんなPC、エクセルのバージョンであっても安定して動作するって意味では楽だな。
VBAはいいとしてもその上のExcelの動作がバージョンによって変わる
特にグラフ周りはグダグダ
普通の事務職がVBAを勉強したいっていう何の変哲もない書き込みにおまえら首の皮を取ったようにレスしててワロタ
おまえらみたいなのが少数派だってことを認識した方がいいぞ
もう俺はおまえらに何も言えない
首の皮を取って出直してくる
本気でプログラミングするわけでもない事務員なら、より簡単に色々出来ることが多い言語を選ぶのが正解だろ?
マゾはVBAから始めてもいいけど完全に選択肢間違えてっぞ
ExcelVBAを学びたい人の目的はExcel上での自動化なので、他の言語提案する馬鹿は、要求仕様もRFPも設計も出来ない馬鹿だと思う
真に事務屋に必要なのはAutoHotkeyとかUWSCみたいな即物的なマクロツール
つーかいい加減VBAなんてゴミ捨てろよ
手抜き目的でプログラムなんて興味なしが大半なんだからそのへん雑なjsが最適だろ
型だのSetだのCallだのいらねーんだよハゲ
エクセルと心中する気持ちがある
目指せエクセルマスター
それぐらい本気で取り組む気持ちがあるならVBA
そこまでの覚悟がないなら他の簡単で使い道が多い言語にしたほうがいいね
>>496 カスタム関数がjsで書けるようになる。
現在ベータテスト中のはず。
またpython対応も進められてるはず。
ここぞとばかりに湧いてきよった教えたがりのプロさん達w
>>484 エクセルのグラフや統計ツールは場当たり的な作業で使うもので、自動化には向かない。
そういうのはpythonとかの方がいいよ。
>>500 エクセル並のグラフ作れるライブラリ教えてくれたら考える
ExcelのjavaScript対応なんて、Googleスプレッドシートの後追いじゃないの?
サーバーサイドじゃなくクライアントで動くなら助かるけど、
でたぶん、APIがあるだけで関数書式はVBAと同じ手続き踏まされると予感
excelは圧倒的な普及率が強み
多少使い勝手が悪くても使う理由
>>502 もちろんクライアントサイド。google spreadシートのはサーバーサイドでちょっと複雑な処理書くと制限に引っ掛かったりで非常に遅く、jsの仕様もes5相当の古い書き方しかできず辛い。
その点excelはedgeのjsエンジンであるchakraコアがそのまま動き最新の機能が使える。
まさかのasync/awaitまで使えて夢が広がる
dim rng as range
for each rng in selection.rows
以下略
こんな感じで複数行選択して各列に対して操作を行いたいんですよ
でその操作の中で行をコピー・挿入だったり削除だったりするんですけど、それがselection内だったりするとselectionそのものが変わっちゃったりするんです
複製された行に対しても操作しようとしたり、削除されて上に1行繰り上がって本来操作されるべき列が飛ばされたり
なんかいいアイディアないですかねぇ
>>482 同じことあった。ライブラリのバージョン違うと動かんのねあれ
客が使うオフィスのバージョン確認したわ
どなたか教えて頂けませんか。
Debug.Printが毎回追記されていくのがうっとうしくて、下記のような記述をしました。
Private Sub im_del()
Application.VBE.Windows("Immediate").SetFocus
SendKeys "^a", False
SendKeys "{Del}", False
End Sub
Sub ABCDE()
Call im_del
Debug.Print "ABCDE"
End Sub
ところが、一瞬"ABCDE"の記述が出現した後、すぐ消えてしまいます。
"ABCDE"を出力したあとに、ctrl+A、Del、が処理されているように見えるんですが、これは何故起こってるんでしょうか?
>>507 SendKeysはWindowsさんに伝言をたのむ命令
その伝言が伝わる前に直接連絡した方が先に届いてもおかしくない
DoEventsいれてみ
ここはほんとうに素晴らしいスレッドですね。
>>456とか
>>459とか
>>466とか雰囲気悪くするだけだからもうこなくていいよw
5chに来て何言ってんだ
建前抜きにした罵詈雑言の罵り合いも殺伐とした空気も煽りも自演も5chの醍醐味だろう
綺麗なインターネットを求めてるなら実名でブログでもツイッターでもやりゃいい
pythonは次期Excelに搭載されないことが決定しただろ馬鹿
マジかーvbaとpythonとjsの悪魔合体楽しみにしてたのに
ゆとり世代の知恵遅れの人達はいちいち誉めてあげないとダメだよ
リアルではみんな良い人なんだろうな
そうだろ?
クソ野郎ども
Sendkeysは基本避けるべき。
お手軽だからその時だけ動けば良い場合なんかに使うこともあるけど、制御できるようにWin32や別のAPI使うべきだよ。
ああ、でもイミディエイトは簡単にはいかないんだった。
Win32でどうにかしようとして一発でExcel落ちること多数。
俺もSendkeys以外で操作出来ないや。
Pythonが使えるようになったとして、Rangeの扱いはどうなるんだろ?
xlRangeとか名前変えて凌ぐのかな。
xlPyter NoteBookとかもうワケがわからなくなりそうな気がする
アマチュアの皆さんはプロの話についてこれないでしょう
あるのかしらないけど事務員板などに行って、そっちで同レベル帯の人達だけでディスカッションすれば捗るのでは?
python実装するとかしないとかそういう話はどこで知るんですか?
ID:Ojk7x3Ta
知的障害者?それともただの馬鹿?
ID:Ojk7x3Ta
重度の妄想癖のある統合失調症患者
近いうちに行政の方に保護される予定です
>>536 でVBAの質問は?
何か聞きたい事はないの?
ないならキエロ
質問です
エクセルでゲームを作っている初心者ですが
セルの背景に風景画を設定し、
それをたまに切り替える処理は可能ですか?
特にセル内にはアイテムjpgを表示して、その背面に風景画を
表示させたいのですが
普段事務系でVBAを利用しており大変役立っているのでVBAがボロクソ言われているのに衝撃を受けました。もっと良い方法があるのなら是非知りたいです。
他の言語の方がいいというお声をちらほら拝見したのですが、例えばエクセルで集計や管理しているデータを仕訳化して会計システムに読み込ませるようなケースでは他の言語の方が良い場合があるのでしょうか。
それとも、そもそもでエクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
エクセル使っている時点で糞というご意見もあるでしょうが、、、
>>539 >エクセルを使っている場合はやはりVBAの方が向いているのでしょうか。
現状その通り、将来的には分からんってだけ
>>410 instr使って26*2回loop回して判定すればいいよ
>>539 データ入力まではエクセルでOK
表形式のデータ入力ならエクセルが便利ってのは事実だ
入力したデータを読み込み、なんらかの計算をして、別のシステムと連携する
といった処理は他の言語を使ったほうがいい
データの読み込みはExcel.Applicationのおかげでどの言語でもできるし各言語にもっと良いライブラリがある場合もある
一旦データを読み込んでしまえば後の処理はエクセルから独立して作ることができるのでエクセルの制約に縛られることがなく快適だ
VBAはイベントハンドラなどエクセルの操作を拡張するちょっとした処理を定義する場合に仕方なく使うものと割り切ろう
例えば表形式のデータ入力を補助するちょっとした処理を作りたいな、と思ったらVBAでOK
またパワーシェルキチガイやC#キチガイなどが降臨してくる悪寒 w
textboxが3つあって仮にABCとして、enterイベントでエクセル読み取ってlistboxに追加。追加されたものをダブルクリックしたらtextboxに入れる。
A→追加→dクリック→Aに追加
B→追加→dクリック→Bに追加
textboxに追加する際にtextboxを特定するにはどうしたらいいですか?
>>544 日本語をまともに書けるようになってから出直してこい
そんな頭だからわからんだけ
>>544 意味わかんねえから誰も答えらんねえ
enterイベントって何よ?そのイベントはどこから発生する設定なわけ?
"エクセル読み取って"とは?
listboxに追加されるのはエクセル?w
最後に、なぜlistboxからtextBoxに追加する?
>>544 実現したい事を一個づつ分けてみては?
ちょっと意味が分からない
エスパーしてみた
textboxが3つ(a,b,c)とlistboxが1つあって、
いずれかのtextboxに値を入力してenterを押下すると、その値がlistboxに追加される。
(その際に、どのtextboxから追加されたのかも情報として保持しておく)
listbox側でアイテムをダブルクリックすると、そのアイテムを元のtextboxに再度表示させる。
というような動作がしたいのではなかろうか?
説明下手ですまん。
textbox a b c3つ。
listbox 1つ。
listboxにはa b cにはそれぞれ違う入力候補が表示される。
textboxがフォーカスされるとエクセルから読み取ってlistboxに入る。
ここまでは出来た。
抽出された、listboxから選んでそれをダブルクリックでtextboxに入れたい。
その時に入れるべきtextboxの保持の仕方が知りたい。出来ますか?
>>550 お前馬鹿なの?
オブジェクト名は何のためにあると思ってるの?
>>546 答えもしないお前が引っ込め
listbox1のリスト要素は textbox a,b,c選択毎に変わる。a選択時にはa用要素、b選択時にはb用要素...と。
ユーザーがリストの要素をダブルクリックした時に目的のboxに入力させたい。て話ね。
単にコードの内部で変数維持すりゃいんじゃないの?
最後に選択したTextBoxを覚えておく変数を用意するだけだろ。
>>538 >>551 SetBackgroundPicture
ズバリそのもののメソッドあるじゃん
書き込む前にググるくらいはしようよ…
>>557 ありがとうございます
でもそれつわてどういうキーワードだと引っかかるんですか?
>>558 「セル 背景 画像 vba」でググっただけだよ
むしろどんな単語で検索したのかこっちが聞きたい
あーあと勝手に
>>538はシート全体へ背景を表示したいと捉えたけど
文字通り「一つのセルに背景画像と他の画像を重ねて表示」させたいなら
AddpictureとZOrderをキーワードに調べてみて
>>507です。
SendKeysのctrl+A、Del、のあとに2秒も待機をはさみましたが、やはり"ABCDE"が出力されてからその文字列が削除されました。
検証したところ、環境のせいか何なのか分かりませんが、SendKeyはマクロが終わってから処理されているみたいです。
あきらめます。いろいろどうも。
うちで色々試してみたけど、少なくともWin10+Excel2016(64bit)の環境では
イミディエイトウィンドウのクリアがうまく動かない
なぜかSendkeysのところで警告音が鳴って(音だけでメッセージは出ない)、何も処理されてない感じになる
ネット上にもサンプルが色々転がってるけど、やってることはみんな同じだし、原因がよく分からん
DoEventsやSleepもあちこちに入れてみたけど変わらず
Win7で試し、XPで試し ははぁ~ん、もしかして、これは、レガシーアーキテクチャーだったんだな、と
Accessだと、とっくに「SendKeys」は使うな とご託宣のシロモノ 理由は言わずもがな
しかしVBScriptやら他の言語では普通に使えてるんだよなあSendkeys
んな面倒なことしなくても、バックスペースをそのまま出力すればいいんじゃないの?
どこかでそんな作例見たぞ。
バックスペースでもデリートでもかまいませんが、
マクロ処理より「先に」SendKeysがしたい、というのが主旨でした。
別にSendKeysにこだわる理由もないのですが、どうにも他の手段も思いつきません。
みんな煩わしくないのでしょうか。
>>564 そもそもSendkeysがまともに動かない
BackSpaceもみんなダメ
Sendkeysじゃなくて、Debug.Printで出力しろって言ってるんじゃないのか
出来るかどうかは知らんけど
うちの環境でSendkeys試したら、それ以前にイミディエイトウインドウがアクティブにならんかったわ
>>567 確かに検索するとバックスペースを大量に出力する方法も出てくるけど2016ではだめだった
制御コードはみんなスペースに変換されて出力される
イミディエイトウィンドウをアクティブにするには、日本語版では "イミディエイト"
"immediate" は英語版
もうメモ帳で立ち上げたテキストファイルにリアルタイムで追記していくでいいじゃん
>>568 >イミディエイトウィンドウをアクティブにするには、日本語版では "イミディエイト"
いや、それはわかっている
SetFocusしてもアクティブにならんかったんだよ
まあ古い環境なんで追試するほどのもんでもないしどうでもいいが
Excel2010、2013、2016
Excelに詳しくない人が何でも貼付をする為、書式がグチャグチャになっていく・・・。(値に貼り付けが基本と説明してもわからず・・・。)
こういうのを作ったけど不具合が出てしまう。(貼付が出来る。)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Target.PasteSpecial xlPasteValues
Application.CutCopyMode = True
End Sub
「値に貼付」以外の貼付ボタンを非表示かロックをする方法は無いでしょうか?
>>571 何をしたいのかよくわからんけど書式なんて無視しとけばいいんじゃね?
問答無用で値のみに強制するならchangeでコピーundo値貼り付けでいけそうだが
共有ファイルだと他の人に迷惑だし全体の書式を修正するコード書いたほうがいいんじゃないの
SubとFunctionの違いは
返り値がないかあるかの違いだけですか?
英語やってる人なら
x イミディエイト
o イミーディイット
のカタカナにしたいな。
>>572 すみません。
書式だけではなく、セルの保護まで設定される。
コピー=セル保護有
ペースト=保護無のところに保護有に切り替えてしまう。
>>573 そのパターンもありますね。
明日、チャレンジしてみます。
>>542 539です。遅くなりましたが詳細ありがとうございました。
他の言語を使った方がいいとのことで、例えばどのようなものがおススメでしょうか。経験があられましたらお知恵をお借りできましたらありがたいです。
>>578 馬鹿には無理だからこのままExcelを使ってろ
>>578 横だが、
> 普段事務系でVBAを利用しており大変役立っている
本業があるならこれでいいと思うよ
ここの人達(特に口が悪い人たち)は、目的を忘れて道具をありがたがる傾向があるけど
本業が別にある人は、そんな人たちの道楽に付き合う必要はないよ
もし、今の業務を大幅に見直したいとか自動化したいとか考えているなら
自分で何か言語を習得して…、ではなく、そこはプロのソフト屋さんに任せるのが一番
そして本業として求められるのは、システムの要求仕様をきっちりまとめる事
本末転倒とならないためにも、要求仕様をまとめることが一番大事ですね
> 普段事務系でVBAを利用しており大変役立っている
だけなら全く問題ないんだけど
だんだん進捗管理したいとか文字コード変換したいとか言い始めるやついるからな
しかもVBAしか知らないからVBAでやろうとして手に負えない
プロに任せろってのがその通り過ぎる
Excel使うってのに、わざわざ他の言語勧めるやつは何か勘違いしてるように思う
VBなんて仕事する上での通過点でしかないから最低限動けばいいんだよ
職場で違う言語提案して稟議通せたやつがどれだけいるよ
完全にマイオナじゃねーか
Ruby は、ファイル・テキスト処理では、無敵!
たのしいRuby 第5版、2016
逆に言えば、ExcelのしごとをするのにVBAが最適なのは当たり前
Excelの仕事はテキスト・ファイル処理だけじゃないのにRubyが無敵だとVBAのスレで言い出すバカ
唐突にRubyとか言い出すのはバカだが
ファイル・テキスト処理はExcelの仕事でもVBAの仕事でもないだろ…
エクセルの仕事はVBA
まあ一理あるけどエクセルで全てが完結する仕事ってそんなにないんだよね
ほとんどの仕事でプラスαがあってそのαを処理するのにVBAは果てしない苦痛を要求してくる
なのでエクセルで仕事する部分を最小化するように設計して
他の言語を使って楽しちゃおうってわけ
プログラムの勉強ちゃんとやるってんならサンプルの多いc#がいいと思う
事務仕事っていってもofficeしか弄らないなんてことはないだろうし
ちょっとしたGUIソフト作れるようになったら楽できる部分も出てくるはず
保守やユーザーサポートしかやらん社内SEには、高い開発環境なんて買うてもらえへんのや。。。
別にαの処理もVBAで余裕だが。
単純にVBAのスキルが足りなくて苦痛な処理しか書けないだけだろ。
別にC#でも良いんだけど、それでもExcelの場合はVBAの方が良いことも多いからね。
よっぽどVBAが不利になる場合以外はVBAで書いちゃうな。
VB6のことなんだけど、formにいくつかのtextbox等があって順番通りに入力させたい時ってenterキーじゃいないけどわざわざ仕込むのが当たり前?それともタブで移動が当たり前?
マルチラインでもないテキストボックスでEnter飲み込んだらデフォルトボンタンが機能しないじゃん
たまにそういうのに出くわすけど嫌い
>>594 ホストの移行でさんざんそういうの書いたけど
Windows的には
>>595のいうようにEnterはデフォルトボタンだから
タブで移動させるようにユーザー教育するのが正解
桁が決まってたらシリアル入力のように自動で飛ばしてもいいかな
ただデフォルトボタンで画面確定されてしまうのがウザいってんで
デフォルトボタンを無効化したりすることも多かった
Webに移行してもデフォルトのsubmitさせないとか
>>594 馬鹿は死ねよ
スレタイトル読めないのか?
他の言語を現場で使うのを許されるほど裁量与えられてんのかな
VBはexcelだからノーカンみたいな屁理屈で通ってるけど
自分がいない時に誰もフォロー出来ないようなシステムは使わせてもらえないわ
vbaでwebサイトのhtmlを取得しようとしてるんですが、うまく行きません。
お知恵を拝借できませんか。
完全にグーグル検索に頼ったやり方で、
Dim source As Object
Set source = CreateObject("MSXML2.XMLHTTP")
source.Open "GET", "
https://www.kyounoryouri.jp/recipe/42799_.html";, False
source.Send
Do While source.readyState <> 4
Loop
Debug.Print source.responseText
Set http = Nothing
という感じで、NHKの「みんなのきょうの料理」のレシピ記事を取得しようとしています。
ところがsource.responsetextには、htmlのフッター領域しか入っていません。
なぜこんなことが起きるのでしょう?
試している限りだとフッターしか引っ張れないページとhtmlを全部取得できるページがあるのですが、違いが分かりません。、
行数多いから単にイミディエイトウィンドウに表示しきれてないだけじゃないの
>>589 vba以外の言語で書くべき+αの仕事て具体的に何を想定してるの
うちでは多分大したことしてないから全部vbaで完結してる
>>599 そのままコピペして試したけど、それで問題なくページ全体が入ってきてる
いっぺんブラウザ(IE)のキャッシュをクリアしてみ
そのページが、HTML だけで完結しているとは限らない
まず、空のHTMLを送ってきて、後に、JavaScript でサーバーにアクセスして(Ajax)、
内容を取得して、HTMLにはめ込んでいるかも知れない
例えば、5ch のスレも、そういうやり方
だから皆、Ruby などで、Selenium Webdriver を使って、ブラウザを自動操作する。
ブラウザの動きと、全く同じ動きをするようにする
>>601 画像処理(.NET使えないと面倒)
UIAutomation(GUI操作はどうしてもウィンドウ見失ったり不安定なのでtry-catch使えないの辛い)
という理由でこの辺はPowerShellでやってる
>>604 UIAutomationはVBAでも使えるのを知らないからこういう発言になる。
つまりVBAのスキルが低くて使いこなせてないだけというわけだ。
画像処理?
これまたスキルが低いだけじゃね―の?
GDIやGDIPlus程度ならVBAでも使えるぞ。
>>603 そういう場合はIEオブジェクトを使う手もあるね。
MSXML2.XMLHTTPやhtmlfileだと早いけどブラウザ操作じゃないからね。
>>608 PowerShellでも無いだろ。
C#
C#なら分かるが。
それにExcel絡みになる場合(操作した結果表示された所からデータ取ってくるとか)も結構ある。
>>606 誰もVBAで実現できないとは言ってないだろ…
上で書いてるように「面倒」なんだよ
VBAでSystem.Drawing使用時と同じくらい簡潔な画像処理コード書けるか?
UIAutomationもそう
VBAでも使えるのは知ってるけどどうしてもだらだらと長くなる
UIA extensions抜きでもパイプライン使えるPowerShellの方が綺麗に書ける
エラーも捌きやすいし
向いてる向いてないはあるんだからVBAでコード書くことにこだわる必要ないでしょ?って話だよ
VBAでなければ非効率的だと確定的な処理を除いて全部、他の言語のほうが良い
誰だって楽に多くの収穫を得たいからね
>>600 >>599です。まさしくご指摘の通りでした。
テキストファイルに出したら全部入っていました。
ありがとうございます。
マクロが上手く動かないと言われ、確認したら非表示にしてたグラフ作成用テンプレシートシート消されてたり、セル削除上詰めとかされてて参照セルがズレてて上手く動かないて事が何度かある
使い方シート的なのを用意して注意書きしてるけど利用者はまともに見てないみたい
こんな時はどう対処するのが一般的なの?
消される可能性踏まえてエラー処理書いたりは流石にしないよね?
>>614 対処しない。もしくは説明シートをよく読めと指導、終わり
例外処理について質問です。本とか見てると例として0除算なんかがよく上がってます。適当ですけど
dim a as long
dim b as long
dim c as long
a = 10
b = 0
on error goto errorHandle
c = a/ b
exit sub
error handle
msgbox "0で割ってます"
みたいな?でもこれ例えばif(b = 0) then ~ exit sub みたいなの入れて弾いちゃっても同じことできますよね
どういうときにerrorを使えばいいのかタイミングがよくわからないので教えてください
>>616 お前みたいな無知蒙昧な馬鹿にはわからない原因のエラーが出た時にはどうするか考える頭がないのか?
>>614 保護かけといても変更されたら対応しない
>>616 エラーがでるかどうか事前にわからない場合に使う
>>614 テンプレートシートはveryHiddenにする。
セルを削除したり勝手に追加したりするヤツは必ずいる。ロックしても「ロックがかかっていて使いづらい、パスワードを教えろ」と言ってきたり。
ふざけんなと思いながら無視してると「あいつはパスワードも教えない、性根が腐ってる」とか言われたりw
>>614 > 非表示にしてたグラフ作成用テンプレシートシート消されてたり
Sheet.Visible = xlSheetVeryHidden
> セル削除上詰めとかされてて参照セルがズレてて
シート保護もしくは名前を付けて名前で参照
なんでマクロ使えない奴らに話の主導権握られてるんだ
会社では作成者が仕様決めるんだから、従わない奴が悪いって話にしないと
>>611 お前が言ってるのは「高級言語Basic最高」ってのと同じなんだよ。
ライブラリの有無の話じゃねーか。
今は知らねえがUIAutomationじゃ右クリック出来ねえとかライブラリの問題の場合もあるだろ。
俺は面倒だったけどPowerShellでもSendMessageでなんとかしたりしたが、それと一緒じゃね?
向いてる向いてないはあるがExcel絡みの場合にはVBAの方が向いてることも多い。
UIAutomationだって、単に操作して終わりならVBAじゃやらない。
問題はExcelが絡んでくる場合だ。
後は拘りだろう。
VBAから実行ファイルをShellなんかで呼び出して、実行ファイルは自分が終了時にファイルなんかに実行結果を書き出し、VBAがそれを読み込んでExcelに書き出すなんて処理はかっこ悪いから俺はやらねえ。
そういう場合はVBAで完結するように書くね。
ありがとうございます
veryhiddenはなんか見た記憶があるけど忘れてました
https://www.kentem.jp/product-info/dekispart/ この 入札・技術提案・施工計画 って画面、どう見てもExcelなんだけど
いいなー、これ、いいなー
って書けば誰か教えてくれるスレッドですか?
リボンのコマンドはともかく、右端の「ツリー表示」が知りたいんですけど
>>629 これはExcelじゃない
.Netアプリ
>>630 思いっきりExcelって書いてるけどね。
2つめの図でしょ?
インタラクティブな操作の拡張もC#でやったらVBAの出番がなくなっちゃう
ひどい
左上のアイコンが2007の頃のだし、大体がタイトルバーにExcelて書かれてるし
互換モードとかご丁寧に出てるしで、Excelと断定してたんです
右端に「ツリー表示」って出てる画像はそれっきゃ無いから間違いようが無いしで 省略してごめんなさい
脊髄反射の人へのエクスキューズはこのぐらいにしといて (←皮肉
そうですか、 カスタム作業ウィンドウねえ 知らなかった すごい助かりました
VSTOもためになります これを手掛かりに必死こいて実装に向けてがんばります <<632-633 さん、さすがです
ここまでしてVBAにこだわる理由はなんなんだろう
信仰心というやつなのかな
VSTOとか、EXCELにはこだわっててもVBAにはこだわってないわけだが
>>637 excelにVBA以外って何があるの?
エクセルで違う言語持ち出す奴は職場でちゃんと共有できてるのか?
公開オナニーみたいな状態になってなきゃいいけど
社内で共有するならVBAはありえないね
少なくとも1人の固定メンテナが決まってること
ドキュメントをブラウザで見れるように整備すること
テキストでバージョン管理すること
十分テストしたパッケージを配布すること
配布は社内のパッケージリポジトリで行うこと
これが社内で共有する時の基本な
エクセルだとバージョン管理もテストもしてないマクロをメールやファイルサーバーで配布
ろくな説明もなく飽きたらメンテナンスをやめて放置
みたいなバカな事をする人が湧いてくる
>>638 とりあえずVB.NETとかC#とか
>>639-640 職場とか社内で共有とか
想定する範囲が違いすぎて議論にならんわ
すまん、
>>640みたいな仕事を外注せず社内で作らせる職場なんてあるのかと思ってな
SIerやソフト屋さんははそれが今時だろうが、世の中色んな業種があり、ユーザーウェアとしてのExcelはそれなりに使い勝手がいい
.NETで組めばすぐ終わるようなソフトをVBAでとか言われるとテンションガタ落ち、さらにそんなに掛かるの?とか言われるとイライラがとまらん
Netでやるとして、その部署(会社)にあなた以外にそれをメンテ出来る人居るんですか?
ま、これはVBAでやるにしても同じだけど
殆どの場合、VBAでもすぐ終わるしな。
Excel関係ないのに無理にVBAってのは良くないが。
それにVBAなら作った奴が辞めてもどうにかなる場合も有るけど他言語だとどうにもならなくて外注しなきゃならなくなることもある。
VBAで組めるようなもんを他の言語で組んでもなんとかなるだろ。VBAで組みなおせばいいんだからw
そもそもそこまで個人に依存してる会社が問題だわ
Excelが関係ないならそうだがな。
関係ないならVBAで組むわけ無いんだから。
わざわざ他言語で組むんだから何で?となりゃややこしい場合ということになる。
エクセルトリガーにしてでOutlookの処理やってるよ
VBAと.net論争は不毛だよね
俺も最初は何で今更VBAをって思ってたけどね
netからしたらそもそもデータを扱うのにDBじゃなくてエクセル?ってなんだよって思うけど
エクセル縛りならVBAが最適なのは間違いないし
かと言って今からVBAを覚えるのもなぁーって事なんだよね
で それならC#でWinフォームを新規で作った方がデータならより複雑な処理も便利で簡単かつ高速で出来るかなって思うからね
アップデートもオンライン配信だし
でもエクセル縛りならVBAの一択なのは間違いない
エクセルVBAができればデカイ顔できた時代と違って
今はエンドユーザーにもある程度のITリテラシーが求められている
REST APIがユーザー向けに提供されてるとかちょっと前までは考えられなかったが
今じゃ非IT系のビジネスマンでも当たり前のようにリクエストを飛ばす時代になってしまった
本末転倒な気もするがテクノロジーが進化するとユーザーも進化しないといけないんだな
専門職に任せっぱなしじゃまずいって流石に政府も気が付いた
なので小学校でプログラミングを必修化などして慌てて対応しようとしてる
子供達はいいが大人はだれも面倒を見てくれないから自分で学ぶしかない
>>653 >専門職に任せっぱなしじゃまずいって
その専門職が「IT土方」と呼ばれて底辺職種になっちゃってる。誰が本気で取り組むかっての。
数年後には無かった事になってるよ。小学校の教諭にプログラミングを教えろって無理だし。
ところで、VBAができればデカイ顔ができた時代ってあったのか?
俺の知ってる限り、そんな話は聞いたことがない。
>>654 噂ではいろいろ言われてるけど実際は都合のいい便利屋さんになるだけだもんな
職場によってはVBA禁止だし
素人がVBA出来るようになればヒーローになれると妄想してるだけだろう
どんなにVBAで便利な業務ツールを作ってもたいして評価されないのが普通だわ
そんなもん覚えるなら効果的なゴマすり覚えるか昇進試験頑張ったほうが費用対効果は高い
中小零細なら評価してくれる会社があるのかもしれんけどな
>>655 世の中にはIT企業以外も存在してるしむしろその方が多い。
そもそもプログラム書ける人がそんなにいない。
だから、VBAですらできれば評価される世界はたくさんあるよ。
>>656 IT企業以外の大企業でVBAを評価してくれる会社なんてあるの?
聞いたことないな。VBA禁止とかVBAはズルとかなら聞いたことあるが
やっぱ大企業のオフィスワークなら昇進試験(資格試験含む)頑張るの一択でしょ?
昔働いてた企業で他のグループ会社の営業がPC得意だけど評価されないから
PC苦手ということにしてると言ってたの聞いた時には笑ったわ
VBAはズルと書くからお里が知れる。
働いたこと無い人は正直に申告しような。
>>657 >昔働いてた企業で他のグループ会社の営業がPC得意だけど評価されないから
>PC苦手ということにしてると言ってたの聞いた時には笑ったわ
これが現実なわけで。マジでプログラム書けるとか言ったら変人扱いされる、つうかされてる。
なのに、面倒な事務処理があって残業したくない、メンドくさいとなると「すき屋の牛丼奢るから作ってくれ」とか言いやがる。
まぁ、内容聞いて面白そうなネタだったらやるけど、簡単過ぎてバカバカしい時は「あー忙しい」と言ってやらない。
>>654 おまえがVBA出来たって所詮無能なんやから当たり前やろw
普通の人はデカい顔しとるし実際尊敬されとんでw
>>658 大企業だと個人プレーよりチームワークを大事にする会社があるんだよ
とりわけチームワークを最重要視する会社ではVBAがズルになるケースもある
他には、その人しかメンテナンス出来ない状態になるのを避けるためのということもある
VBAツールがどうしても必要なら業者や派遣を呼べばいいというのもある
話し相手がいない老害が絡んでるだけならまだしも
今更vbaかその他かなんて議論無意味すぎて草も生えない
そもそも想定してる前提が違いすぎて議論にすらなってない
雑談続けたいなら前提合わせれば?ただし老害は除く
・処理の難易度(単純な行数じゃわからんが十数行で片付く仕事なんてほぼ簡単な処理だろ
・処理する人のスキルセットと能力(プログラムしらねーなのか、Cなら知ってるとか
・処理の影響範囲(社内のみとか外販するとかその結果を何に使うかとか
・処理を実行する環境の制約(ネットにつながってねーとか、office以外インストールできねーとか
こういうの考えるのこそこのスレの大多数であろう非プログラマーで
ユーザー側に近い人に求められるスキルじゃねーの?ただし老害は除く
>>661 その場合、VBAどころか他の言語も使えないと思うけど
>>660 >普通の人はデカい顔しとるし実際尊敬されとんでw
という夢を見たのかニート爺W
小さいプログラムの間は、VBA でも良かったけど、
複雑なプログラムになるに従って、Ruby の勉強コストと逆転してくる
大規模になるほど、Ruby などの方が、バグが少なく、可読性が高くなってくる。
保守コストが、言語の勉強コストを上回るようになってくる
プログラムの複雑性というのが、累乗的に加速していくから
最終的には、たった1行直すだけでも、全システムの調査が必要になってくる。
ソースコードがスパゲッティ・泥団子w
もっと大規模になるとrubyも???ってなってくるぞ
そうなったらもう立派なプロだ
githubはruby on rails
rubyは割と有名なアプリが多いよ
VBAで有名なアプリは……
>>663 そうだよ、プログラミング関係は専門業者か派遣
非プログラミング系の大企業のオフィスワークなんだから
VBAだの他の言語だの使われても評価のしようがないし
その人が入院したり辞めたりなどで居なくなるとメンテ出来ないんじゃ困るしで
評価の対象にしづらい。営業なり総務なりの本分で頑張ってもらうとなる
結局は昇進試験や資格試験での成績がものを言う
IT系の現場ではVBA専属はマクラー()と呼ばれることが多いね
逆だろ
アマチュアのマクラーが別の板に行くべき
生涯学習板とかあるからそのへんで
日本企業の半分以上がノートと電卓だし
パソコン入れててもメールが殆どとか
表計算とか入ってても紙がわりがいいところだからね。
あんま、こだわることないんじゃないかな
おかしいな、ここVBA質問スレじゃないの?
VBAアンチスレなの??
VBAの質問じゃなくて、こういうことをVBAでやりたいんだけどって質問がくるからそうなる
そういうことはVBAを勉強してやるんじゃなくて、他の方法があることを学んだほうがいいってなる
VBA縛りなのかを最初に明打っておけばいいんでね?
VBAを使って彼女を作るにはどうしたらよいでしょうか?
>>684 こういう所は質問者より回答者の方が集まる
回答者は基本神になりに来てるから質問者が来ると奪い合いになる
奪われた奴は全てに対してヘイトを撒き散らし始める
質問者や他の回答者へのダメ出し、罵倒
そしてVBAそのものの否定からのフルマウント狙い
派遣だけど、行ってた会社は正社員もVBA使ってる。
今まで行ったことのある大きな会社はどこも使ってた。
例えば外資系銀行。
ランキングトップ10に入っているどれか。
社内システムのチェックに使ってた。
例えば大手損保。
イントラ内でのスクレイピングとか。
何でもかんでも大金かけてシステム化するわけじゃないし、システム化を目指してのシュミレーションにVBAで仮に組むこともある。
答えが知りたいだけならググるなりstackoverflow.jpやteratailで質問すればあっという間に解決する
だからあえてわざわざこんなところまで質問に来てる人は、そういう型にはまった回答じゃなく、思考の柵
檻を広げる着想を求めてるんだと俺は解釈したね
他の言語を勧められた時に、なるほどそういうのもあるのかという、気付きを得てもらえたら幸いだね
VBAを否定してる奴はレベルが低いと思うね。
出来る奴は案件毎に、その処理だったらVBAは向かないとかいう話になるんであって言語そのものの否定にはならん。
自分が出来ないのを認めたくないからツールのせいにしようとする。
わろた
向いてる処理が判断できないからVBAに執着するんだろうな
>>689 向いてる処理を判断ができないとこういう処理をVBAで苦労して書くハメになりますwww
どんな処理であれ他言語の人はVBAを使わない時点で分かるよね
ブログラマーならVBA3行でキレるでしょ
もし他の言語サポートされたら大半の人が即ポイするだろうなこんなの
他言語の人が使ってるんだが。
ここは頭の悪い奴ばかりか?
技術的に参考になるレベルが皆無なんだよな。
自称他言語の奴も含めて。
そらvbaと聞いただけで触ったこともないのに下に見て的はずれな指摘してるだけなので…
案件そのものがVBAの話が多いわけ。
今までの経歴から判断されて。
その中でこの処理はVBAには向かないと言ったことも何度もある。
向いてる処理が判断出来ないからVBA批判になる。
面白いのは、その言語で~は出来る、向くといった話がほとんどなされないこと。
なされても薄っぺらなものばかり。
>>686 よく、その理屈書くけどここ500レスほどの間には無いみたいだね。
稀な事例を根拠にするなんて屁理屈だよねw
>>662のとおりだろ
処理がvbaに向かないって、社内で定期的に情報クローリングする程度で
プログラマーはいなくて、さらに情報はエクセルで共有とかならvbaもありかもしれない
でもクローリングする対象がhtmlで定期的に構造が変わるからメンテも必要で
しかもその情報が多岐にわたっていて、となったら外注するなり、情報公開元に構造変えないように交渉するとか
メンテがしやすい言語に変えるなり必要になる
ただ今の若手は40,50のおっさんが適当に作ったvb(a)移植案件とかで苦汁をなめてるやつも少なくないから
反射的にvba=悪なやつもいるんだろう
>>701 VBAでメンテがしにくいとか、お里が知れるんだよ。
これだからレベルの低い奴は困る。
プログラマが居ないならもっと簡単で便利な言語使えよwww
なんでそこで苦行VBAに行ってしまうんだ
>>703 そうだね、言葉が悪かった
vbaよりはメンテがしやすい言語にかえる、だな
俺は君のお里がvbaなのはかまわないし、それによって君の技術レベルを貶める連中もただのアホだと思う
君がほかの人間にも根拠や比較をせずにvbaを勧めるなら、レベルが低い奴だな、とは思うだろうけど
昔Macユーザーをマカーと呼んでたのを思い出すな、インフラ系だからパーラーでバッチャー、でパワーシェラーさー
>>706 そもそもどこがメンテしにくいか根拠が無い。
結局ライブラリやツールの問題じゃないのかね。
で、そこそこ出来る奴なら自分なりのライブラリやツールを既に作ってると思うんだが。
自分なりのライブラリとかいう発想がなんかもう残念すぎる
文法
ランタイム
基本ライブラリ
パッケージ管理
プロジェクト管理
開発環境
情報量
何からなにまで全部クソだと思うが
デベロッパーの平均レベルの低さが致命的かな
このスレで、スレが伸びているのは大概無駄話ではあるんだが、今回もご多分に漏れずか
vba嫌いな人間がここに来る必要ないと思うんだが、よっぽどvbaに嫌な思いでもさせられたんだろうなぁ
VBAに良い思いさせてもらったやつなんていないだろ
今になっても具体的な根拠が示せないから笑えるな。
というか、ここにまともに組める奴なんて殆どいないんだろうな。
>>712 君は恐らくvbaで開発もメンテも困らない規模のソリューションが生業だったのと
メンテが必要なレベルのプログラムをvba以外で組んだことがないのではないかな
勝手に卑屈になってほしくないんだけど、貶めてるわけじゃない
金が払われるか、有用かどうかこそ重要で、そこを無視して言語論争してるやつはアホだと思う
で、そんな君にレガシー言語のメンテしづらさを説明しても伝わりにくいと思うので
>>ライブラリやツールの問題といういい指摘についていうと、まさにその通りだ
これが標準で使えるかどうかだけでも生産性が違う開発っていうのがあって、
どのライブラリやツールが使えるかは開発環境を決定する大きな要因になる
で、そんなライブラリやらツールが簡単に自作できる規模ならいいけど、
それで金取ってる会社もあるレベルで、それを自作するっていうのは本末転倒
要するに
>>662で、頭の中にある前提が違う
>>722 大文字小文字じゃね?
つーか性器表現使えばいいのに
ここで質問してもほぼ無駄だよな。
質問してる事について答えてあげればいいのに、わざわざなんでそんな作り方するのだとかVBAじゃなくてよくねとかマクロにする必要なくねとかだし。
質問内容と違うことなら答えなければいいのに。
まともな回答が欲しい質問者には別のサイトが幾らでもある
ここはもうそういうスレなんだよ
つまり「自称」プロがVBAをこき下ろしてうっぷんを晴らしたいだけのスレ
>>726 その別のサイトを教えてくれ
公式のQ&Aサイトのことか
>>728 teratail
Stack overflow
QA@IT
Yahoo知恵遅れ (Excelもしくはプロギラミング カテ)
プログラミング関係のQAサイトを思いつかないって相当ヤバい思う
>>731 普通の人はあんたみたいにPC方面の知識を持ち合わせていない
Q&Aサイトしかり
>>733 検索スキルすら持ってないのか
低脳は大変だな
会社でエクセルを電卓代わりとかメモ用途以外に使う?
データ収集とかデータ処理とかをエクセルでホントにやってんの?
冗談抜きでヤバくない?
>>738 じゃあどんな処理するときに、何使ってるのさ
プロ様はExcelが大嫌いなので、シリアルデータ生成、矩形編集操作、グラフ作成でも絶対にExcelは使わない
チームや顧客の指定形式がxlsxでもExcelは使わない徹底ぶりだろう多分
いろいろ条件変えて試算、みたいな用途はExcelが一番いいと思う
既に起こった出来事をデータ化して集計するならRMDBSの方がいい
未来の事はExcelで、過去のことはRMDBSで
見積はExcelで、請求書はRMDBSで
やっぱり想像通りだな。
>>721 そういうライブラリ(金取ってる)も知ってるし昔持ってたこともある(俺が持ってたのはSPREAD。今となっては古くて使えない)。
でもね、そういうライブラリってのはそれ用に勉強しなきゃならんわけ。
で、それ用に投資(勉強含め人月)しないといけない。
で、これまた上司なんかが規模と向き不向きが分からずに買ったりするんだけどさ。
昔Notes買って一切起動せずに捨ててたことあったなあ。
やりたいことを詳しく聞いたらフリーソフトで十分な内容だった。
まあ、Notesはライブラリじゃ無いけどさ。
単純にそれを買っただけじゃ意味なくて使いこなさなきゃならない。
やりたいことに見合ってなければアホなことになるんだよね。
買うようなものじゃ無くてもね。
で、クローリングの話に戻るけどさ、他言語でクローリングの勉強する意味なんてあるのかね?
だって複雑なことしたいんだったら作らせれば良いじゃん。
外注で終わりだろ。
所詮プログラマなんて底辺は使い捨てなんだからさ。
などという考えに俺は反対なんだけどね。
君の意見を総合するとそういうことになると思うよ。
俺がやってるレベルで十分じゃ無ければここにいる自称他言語のプロなんてお呼びもかからんと思うがね。
もっと上のレベルが呼ばれるだろう。
最初から他言語でクローリングして、その後も外注するほどじゃ無いって場合もあり得るわな。
結局、それで成立するかどうかだろう。
だから外注すれば良いから他言語のプロなんていらんとは言わない。
それと同じことだよ。
少なくとも俺が書いた奴は成立している。
RDBMSな
Relational DataBase Management System やで
そんなフレームワークレベルの話は誰もしてなくて
標準ライブラリのレベルでVBAはうんこだってわからんかな
そもそも参照設定やらアドインやら駆使しないと外部のリソースを扱えないVBAじゃ
ライブラリっていう考えが理解しづらいのかもしれないけど
VBAって有料で難しくて低機能なんだよな
マゾなのかな
マクラーの演説は長いって
簡単な事を難しくする典型
まともな話のできるレベルの奴が
>>721ぐらいしかいないのかね?
他は相手してやるレベルに無いな。
前提知識が時代遅れすぎて相手ができないの間違いだろ
ドキュメンタリー 奇跡の古代文明の遺産 VBA その神秘に迫る
>>750 相手ができないって否定しに来てるだけじゃんw
ここに来てるプロってアレだろ、開発から外された運用監視とかしてる奴ばっかだろw
オブジェク志向も理解してないような奴もいたからなwww
オブジェクト指向を知ってるとVBAへの嫌悪感が高まる
ちゃんと理解してる奴は要求された環境でそれなりの物を作る。
それが出来ないと騒ぐ奴は理解してないだけ。
継承しまくりのコード書いてるんだろうねw
ちゃんと理解したやつは適した環境を整えてから作業するんだよ
またニワカだよ。
VBAでオブジェクト志向が合う場面は少ない。
だからこそオブジェクト志向を知ってる奴だったらVBAに嫌悪感なんて感じない。
オブジェクト志向に合う場面だったら喜んでそのように組むだろう。
まともな奴ならポリモーフィズムや継承が出来なくても、そもそも気にしない。
だって分かってたことだろ。
オブジェクト志向しか出来ない奴が嫌悪感を感じるんだろう。
まあ、発言内容を見れば、そもそもどの言語も出来なさそうな奴が多いんだろうとは思うね。
技術的な話が出来ていない時点で。
ポリモーフィズムも継承もこっちが先に言及してる時点でお察し。
そもそもオブジェクト指向に合ってないからなんも感じませーんってどんな理屈だ?
>>755 知ってる?
世の中にある開発案件は殆どがエンハンスだって。
適した環境を用意できる案件てどんなの?
運用エンジニアが端っこで作るちっこいスクリプトのこと?w
>>757 ポリモーフィズムとか継承とかわざわざ持ち出して今調べて知った感丸出し
VBAが糞なのはそれ以前の問題だっての
>>760 その割にはまともな返答来なかったけど、753の人はw
>>744 >>760 参照設定しないでExcelをコントロールできる言語教えて!
技術無いの見え見えなんだよなあ。
少し分かる奴ならSPREAD持ってたと聞けば多少は想像つくんだけどね。
勿論持ってただけじゃ何の意味も無いけどさ。
話の内容から想像することもできないレベルなんだから最初から強気に出なければ良いのに。
>>759 いくらでもあるぞ
基盤のマイグレーションプロジェクトなんて腐るほど転がってる
拡張・変更の前に土台を整えましょうって話はよくあるしそうならないなら提案する
客に提案もできないようなど末端の場合は知らんが
>>765 Excel VBAをpowershellに変更しましょう!って、提案するんだw
>>765 まさか実行時バインディングでお茶を濁そうとしてる訳じゃないよね?
流石にマジメにそんな寒いこと言うとは思わんけど。
>>768 お茶を濁す?
すまんがお前がなにを言いたいのかわからん
言いたいことは明確にして
>>764 そのためにVBAが使われたりもする。
俺が組んでるのも、俺ので成果が出たら将来的にもっと大規模なシステムに盛り込まれる予定。
>>769 実行時バインディングなら参照設定と同じことだろ。
そして、そんなことは誰でも分かるレベルの話なんだから最初の質問の時点でそれが同じという前提の質問だと想像出来るだろ。
>>770 いやーそのためにVBA使うことはないかな
>>771 あなたの世界では実行時バインディングと参照設定が同じでものであると?
すまんがパラレルワールドの話になるとちょっと俺もわからんわ
>>769 実行バインドなら参照しなくても外部ライブラリ使えるけど、 VBA。
ってことだろ。
で、パワーシェルでExcel操作するコードってのは実行バインドじゃねーの?
自前のライブラリなのかな、アレは?
ここまで書かないと理解できない??
>>774 だからなんだよ?
参照しないでエクセルをコントロールできる言語は?
PowerShell
完全な答えだろ
>>742 俺は君がvbaだとメンテしづらいっていう状況が想像できないって言ってるから
それは君が知らないだけって返したんだけど、想像通りとはどういうことだ
その後の話も筋が通ってないし意味不明だ
適材適所で選べばいいのに、vbaでいけるだろって一辺倒の人間がつくるプログラムに
他人が苦労していることに自覚的であれば、他の方法も勉強して問題は何かがわかるだろうに
そも、今までのやりとりをみるに、君は基本的に本職ではなく、プログラミングをずっと続けてきているが
関わってきた開発も個人レベル規模なのではないか
他の選択肢を考えるにあたり、自身の無勉強故にvba盲信してるような人間は明らかに老害だよ
>>775 VBAは外部参照しないとロクなライブラリが無いってところからの話なんだけどな、それ。
>>773 そうじゃねえ。
質問者に実行時バインディングもNGと言われたらどうするんだ?
そんなことも想像出来ないレベルだから低いと言われるんだ。
普通にどっちも使ってる奴ばかりなんだから。
質問者の意図が実行時バインディングだけお咎め無しなんて想像するレベルの低さを言ってるんだよ。
>>777 そう。
だから俺なんて割合としては実行時バインディングの方が多いけどアホな言及はしなかった。。
>>776 本職レベルが必要なら外注だね。
実際、今までいた所はどこもそうだろうな。
君からすると客に近い所にいるんだろうな。
客に対して、それだったらVBAじゃなくてWebアプリにした方が良いとか言ったりしたこともあったな。
予算の関係で実現せず、不本意ながら俺が組むことになっちまったが。
君は極端なんだよ。
0か100で語ろうとする。
凝り固まっていて外注という選択肢もVBAという選択肢も他言語という選択肢もあるということが思いつかないようだ。
VBAが良いんじゃ無いの。
VBAが良いことも有ると言ってるんだが。
適材適所の中にVBAも有りうると言ってる。
いつもこの話になるんだよ。
一体何度このくだりをやるんだろうな。
しかも相手の勘違いも毎度一緒。
アンカーつけてるのに全く噛み合わないレスするってすごいな
人の話を全く聞かずに自分の妄想を垂れ流すことしかできないのか
>>782 VBAはクソ過ぎて適所が少なすぎる、適所じゃないのに無理やり使おうとする質問やwebサイトが巷に溢れてるって話をしてるの
やっと理解が追いついた?
>>781 何で俺が君と同じ反論をしなかったと思う。
想像ついて恥ずかしいからだよ。
ついでに言っておくと参照設定もCreateObjectも使わないでExcelオブジェクトを扱う方法も少しは心当たりがある。
君は心当たり無いのかね?
>>782 あり得るが無視していいほど小さな割合ということ
>>784 そんなことは無い。
君のレベルに合わせるとこの言でOK。
だって君の発言自体このレベルだから。
>>788 無意味にVBAを使おうとする人からするとそうなんだろうな
根拠も碌に書かずに使いにくいと言うのと同レベルとはどういうことだろう。
根拠も書かずにそんなことは無いというのが同レベルだ。
そういう指摘さえ気が着かないんだからダメなんだよ。
そういう戯言は他の言語が当たり前に持ってるような言語機能と基本ライブラリ、エコシステムを手に入れてから言ってくれ
>>789 また笑わせてくれるな。
何度同じ話をしてるんだw
それじゃCreateObjectと同じじゃないか。
>>793 さっきから聞いてると少しレベルが低いんだよね。
PowerShellでも俺の方が上かも。
だいたい、PowerShellとは用途からいって噛み合わないと思うんだが。
それに君が挙げる用途なら少なくともPowerShellなんかよりC#とかの方がまだましだと思うんだ。
VBAのスレなのに他の言語が出てくるのはなぜ?
関係のない話題NGってスレも珍しくないのにここは随分緩いよね
>>794 じゃあ答えは?
マネージドじゃあねえよな
>>795 やっぱ酔ってるよお前
参照なしでExcelを操作できる言語は?って質問にpowershellって答えた
それを拡大解釈して1人で納得して全く意味不明だが勝ち誇ってるだけ
というかいつからCreateObjectが駄目か否かみたいな論点になってんの??
わけわからん争点勝手に作って勝手に結論付けて勝手にオナニーすんなよ
>>778 つかさ
実行時バインディングもNGになったらそれこそVBAなんてポンコツのガラクタになっちまうぞ
NGする意味もわからんし
所詮、他言語といってもこのレベルの低さ。
話にならないレベルだ。
>>744に対してVBAと同レベルじゃねえかw
よく恥ずかしげもなく言えるよw
>>802 何言ってるのかほんとにわかんないんだけど
プログラミングとかじゃなく国語的な意味で
VBAの事を理解してないのにって怒ってるの?
だって古文みたいで理解不能で読めないんだもん
もっと現代的な最新言語で喋ってよ
当方事務職
VBAの勉強をしたい
なぜならば業務で使えたら便利だから
VBAエキスパート試験の勉強しておけば身につく?(適当)
あのテキストは最初からやるにはちと不親切
尼ラン上位の本を買った方がマシかと
>>808 答えられないだろうね
それは彼の頭の中にあるパラレルワールドの話なのだから
>>809 業務においてネットで調べながら使うのが一番身に付く
最近、質問もなくなったね
もうVBAを使う人がいないから仕方ないか
VB6の質問とか馬鹿レベルの質問を排除すれば当然こうなる
>>722 UCaseかLCaseで判定させりゃ1ループでいいのにな
ではこの糞スレは次スレを立てずに終了にしますね
賛成の人?
ここは
Excel VBA 質問スレ Part54
なのに
>>VB6の質問とか馬鹿レベルの質問を排除すれば当然こうなる
とかって、エラ~いプロ様はここに来るべきではないんじゃないっすか?
>>818 そもそもVB6の質問するような馬鹿は排除すべき
>>820 お前のような人を不愉快にさせる奴も排除すべき
安心しろ
もうこのクソスレは終了するから
VBAは結局誰も使う人がいませんでした
大丈夫だVBAスレは別にある。
ここはプロ様の隔離スレだから
プロの奴らってここに来て何がしたいわけ?
似たようなレベルの奴らが集まるスレにでも行けばいいのでは?
あるのかしらんけど
でも、ここにわざわざ来るのはそこまでレベルは高くないってことなのかな?
素人を蔑んで己の鬱屈した思いを解消しているんだろ
絶対に次スレも次々スレも立て続けるしアンチなんぞに気にせずに盛り上げてくぞー
おー
自称プロじゃない人って何者?
あとこのスレになんのために常駐してんの?
弱い者達が夕暮れーさらに弱い者を叩くーみたいな構図なんじゃねーのか
>>828 その人は自分で質問して自分で回答しる自演の人
そんでこのスレの保守と警備をしてる人だよ
キモいよね
俺が見る他の板では本物のプロが来るなんて滅多に期待できないんだが、プログラミングの世界は
ずいぶんプロのレベルが低いんだな。
プロと自称しても実質はVBAすらまともに使えない落ちこぼれ共やしな
てかなんでそんな無能が他人に教えたがんねんw
VBAってプログラム単体でアプリっぽく出来る?
エクセルとかの中にしか存在出来ない?
>>835 っぽくなら出来る。
エクセルウィンドウ表示にして、フォームだけで作ればいい
>>835 何を求めてんの?
Excelを隠したいならフォーム出してる最中に
Application.Visible = False
ってすりゃ、まぁそれっぽくはなるけど、どのみちExcel上で動いてんのは変わらんだろ
プログラムだけを渡せたとして
受け取った方はofficeのバージョンに関係なく空のエクセルファイルに必要データを入力してからプログラムを実行みたいな
ちょっと説明が下手で分かりにくいですよね
>>838 そんなものを使わされる方が迷惑
それも人に聞かなきゃわからないようなアホが作ったとなればなおのこと
実行後のアウトプットをどうしたいのか知らんけど、
Excelを起動しなければVBAが動かないのは当然じゃないか?
あくまでもExcelに内蔵されている機能の一つだし
フォーム使うと本来の処理のメンテとフォームのメンテで仕事が2倍になる
シートに直接ボタン置いたり適宜ダイアログ出して分岐させたりする程度でできるならそっちのが絶対楽だよ
連投すまん。訂正だが、VBAはWordとかでも使えるんだったな
Excel内でしかVBAを使ったことがないから頭から抜けていた
ふと疑問に思ったのだが、
Excel内のデータ処理はWord VBA等でも簡単にできるものなのだろうか?
Accessでも使えるし
マイクロソフト以外ならAutoCadもVBAに対応してて3D図面が掛けるし
他にも対応してるソフトがあるかも
できるよ
visual basic for (MS officeの) applicationでエクセル専用じゃないからな
てかofficeどころかMS製品ならほとんど操作できる
やりやすいか、機能が十分かは別として
worksheetfunctionもExcel起動せずに使えるの?
>>840みたいな人って何のためにここにいて何を思ってわざわざ書き込んでるんだろう?
>>849 プロ様の人格を否定するような書き込みは控えて差し上げろ
相手はプロ様だぞ
おやおや
アマチュアさん達がロジックではどうやっても勝てない事に気がついてついに精神攻撃を開始したぞ
こりゃ事実上の敗北宣言だよなあ
スポーツ、学問(理系)、音楽
この辺の板でプロはほとんど来ない。
まあここではただのサラリーマンなんだろえけど、プロなら安っぽい行動するなよ。
言わんだけでなんぼでもおるわw
プロと自称しとる奴はクソばかりやけどw
>>855 プロ「アマに勝ったwww」
こういう事?
プロだと証明できるエビデンスがない限り、
『プロレベル』の実力があろうと、アマチュアに分類される。
所詮アマの中でマウントを取り合っているだけだ。
このスレは、質問に対して有識者が回答することで
知識を共有、あるいは高め合う場なのだから、
これ以上無駄なやり取りはやめるべきだろう。
プロ・アマ論争は本物のプロが出た時にすれば良い
馬鹿過ぎる質問はやめろ
これを主張するのにプロとかアマとか関係ない。そんな頭もないから馬鹿にされてる事に気付かないのかね。
横文字ズラズラ並べてゴチャゴチャいうやつってろくなもんじゃないよね
共有フォルダのエクセルを掴みっぱなしにするクズを駆逐するマクロを教えてください
共有ブックは挙動が変な感じになるので要件外です
会社(企業)の業務の一環としてVBAを使う という状況を想定して
ピラミッド形状の企業ヒエラルキー上位1/3を「上」 中間1/3を「中」
それ以下四割を「並」としたとき
並の手伝いとしてVBA案件、一件八万で受けたと
100件で八百万、十万なら一千万
頑張って会社(並)に自分の技術を売り込みに行くよろし さて、間違いはどこ
>>855 どこかにロジックの話なんてあったっけ?
自称プロの脳内かしら w
>>866 ブックを開いた瞬間から計測するタイマー仕込んどいて、5分経過したら警告ダイアログ、10分経ったら強制的に閉じる、とか
よく分からないけど参照設定やらアドイン駆使しないと外部リリース扱えないという批判はVBAだけに当てはまるの?
それとも他の言語にも当てはまるの?
結局そこが問題だと思うんだ。
動的にオブジェクトを作るのはVBAでも他言語でもできると思うからその点で差は無いと思ってたんだけど違うのかな。
自称プロがいるか知らんが、ちゃんと質問に答えたうえで批判しないからいけないんだよ
なんでもかんでも否定から入る5ch脳はリアルでも浮いた存在になるって自覚したほうがいい
自称ノンプロにも当てはまる部分あるけどな
>>869 1/3 + 1/3 + 0.4 が 1 にならないところ。
>>873 質問に答えていてもそれを理解できないような馬鹿が多いからな
>>873 なんでもかんでも否定から入る癖直した方がいいぞ自称ノンプロさん
>>872 他の言語もそうだよ
ライブラリがなきゃフツーのアプリ開発者は外部リソースを扱えない
しかしVBAはデフォルトのライブラリが圧倒的に少ない
正規表現、データベース、HTTP通信など日常的に使うライブラリすら参照設定が必要でめんどくさい
ついでに言うとVBAはサードパーティのライブラリも圧倒的に少ない
COM参照はどの言語でも使えるから差がつかない
他の言語はセントラルリポジトリが整備されておりCOMに加えて膨大なパッケージを利用できる
というかそっちがメインでCOMも選択肢の一つとして使える(けど使うメリットはほとんどない)と言ったほうがいいかな
COMはWindowsでしか動かないし生成も動作も遅い
そしてどんな言語からでも使えるように作るのでインターフェースが最大公約数的な構成になって非常に使いにくい
ライブラリ利用だけに注目してもVBAは酷い言語だとわかるね
>>879 で、でたー
反論できないから悪口言って涙目敗走するマクラーwww
>>878 馬鹿とはさみは使いようっていうけど、おまえは馬鹿とはさみも使えないどころか馬鹿以下だな
1000個くらいに分かれてるエクセルファイルを集計する作業とか、正規表現、データベース、HTTP通信なんていらんがな
VBAで何しようとしてんだよ(笑
『プロさん』とは
とあるサイトの更新情報を自動収集したくてエクセルでなんとかしようとして挫折した敗北者たちの事
>>882 逆にVBAだけで何してんだよ?
こっちは事務員さんのエクセル遊びじゃなくて、業務として真面目にプログラム書いてんの
>>878 Excelを操作できるCOM以外のライブラリでExcel VBAより使いやすいのを教えてよ。
Excel VBAでやるのはExcel操作なんだからそれ以外で比べても意味ないよな。
>>885 昔こういうガキいたなぁ
格闘ゲームでボロ負けしたらそのキャラは強すぎるから使用禁止とかって喚くやつ
俺がまだ小学生ぐらいの頃だったかな
それとそっくりよ
>>886 教えてくれないのねw
言語は目的で使い分けるから VBAも使うのよw
>>887 npoi epplus closedxml excelcreator
つかさ
「excel vbaでやるのはエクセル操作だけ」これはわかる
なぜならvbaは他の用途にはあまりに使いにくいゴミ言語だからね
でも
「他の言語でexcel.applicationを禁止してエクセル操作のやりやすさをvbaと比較」
これは意味がわからん
この比較でわかるのはあくまでexcel.applicationの利便性であってvbaと他の言語の比較にはならない
言語を比較するならvbaもexcel.applicationを禁止するか他の言語でもexcel.applicationを許可するかどちらかにしよう
そもそも、もしかして、マクラーってVBAとExcel.Applicationの区別が付いてない?まさかね
>>889 これは正論
比較するなら縛りを同じにしないとて
マクラー ren ホンダ
これはマクラーをホンダにリネームせよという命令です。
>>889 どこにも禁止とは書いてないよw
COMはWindowsでしか動かないから不便って言うからCOM以外を聞いただけだろw
VBA
だけしか使わないとか、思い込み激しいなwww
>>884 何してるってかいてあるじゃん
コピペやらマージやらがなんで事務員さんのエクセル遊びになるんだよ
手段と目的はき違えすぎだろ
>>895 コピペやマージってどっから出てきたんだ?
もう言ってること支離滅裂で意味わからんよマクラー
>>896 COM禁止はどっから出たのか教えてよ!
>>897 >>885 このレス内容じゃCOM(Excel.Application)有りのVBAとCOM無し(禁止)の他の言語を比べようとしてると解釈されても仕方がないぞ
>>896 アスペ過ぎるだろ・・・
正規表現、データベース、HTTP通信とやらを使わない作業だよ
てかおまえがあげたこの例も臭すぎだろ
覚えたての単語使いたくてしょうがない小学生かよ
>>898 正論
普通にそう読める
マクラーは後から難癖を付けるから厄介
>>899 ほらまたマクラーさんは意味不明なこと言う
正規表現、データベース、HTTP通信とやらを使わない作業 => コピペ、マージ
ホントいみわからん
プロがその単語覚えたてだったらやべえだろ常識で考えなよ事務員さん
これらの単語が覚えたてで使いたくなるような単語なんだっていうあなたの低次元な認識からつい出ちゃった言葉なんだろうけどさ
そう思ってるのは残念ですけど低レベルなこのスレですらあなただけですよ
VBA信奉者は他の言語でなんか書いたことあんの?
一つでもあったらVBAが書きづらい、メンテしづらいって思うと思うんだけど
用途とか技術的な話なんてぶっちゃけどうでもいいんだわ
ただ単に無駄な手間が多くて使いづらいんだよボケってだけの話
>>903 確かにな、VBAを仕事でやってたこともあったが
VBAじゃなくC#Aだったら…と何度も思ったわ
プログラミングはBASICから入ったからVBAを貶したくはないんだが
いくら何でも、もう、他の言語に代えるべきだと思うわ
>>898 878のコメントが無ければね~
都合良く解釈する前に流れを読もうね!
>>900 勝手な勘違いを正しいと押し付けるプロ様w!
全くおかしな話だよ。
最初に参照設定しなければライブラリが使えないと言いだしたのが
>>744でしょ。
>>744碌にVBAのことを知らなかったのが発端じゃ無いの?
>>903 少しは他言語も使ってるけど、VBAに関してはあなたとは逆だね。
制約のある中でどれだけその制約を越えられるかに興味がある。
VBAに関してはね。
Win32使いまくりになったりもする。
ただ、技術的に出来ても、そこまでVBAでやるべきかという場合もあるから何でもVBAでということは無い。
でも高度なことであってもそこだけで他はExcel向きな場合もあるからね。
プロさん、ここでごちゃごちゃ言う前にMicrosoftに入ってVBAを使いやすく改良してよ
>>908 以前にVBAerを苦行に耐えて徳を積む修行僧のようだと例えて、マゾにならオススメと冗談で言ったことがあるが
まさか本当にそんな修行僧のような人がいるとは思わなかった
話がかみ合わないのも当然だったんだな
だって自分に技術があるから。
.Netのライブラリが使えないからと簡単に逃げるのは技術が無いからでしょ。
と煽ってみたり。
色んな技術が有るでしょ。
UserFormがダメダメならCreateWindowEx使えば良いでしょう。
そんな面倒なことせずに楽をした方が良い、そういう技術もあればアセンブラと格闘する技術もあるでしょう。
結局、求められた時の引き出しの多さでしょう。
総合的に見てExcelで良い場面なのに自分の都合で否定してもそれは逃げなのでは?
客にとって一番良いことなのかどうかが大事でしょう。
まあずっと自分だけでメンテするならなんでもVBAでもいいんじゃない
WinAPIを使える程度で技術力とか言っちゃうなら相当に程度が低いことは自覚した方がいい
業務系C#erも必要なら当たり前のようにWinAPIを使うしCOM実装もする
ちょっと前まではWindowsデスクトップがC#の主戦場だったから相互運用はほとんど必須の技術だったと言っていい
アセンブラなんかもコスパが悪いからわざわざ習得しようとしないだけでやろうと思えば誰でもできるだろうね
他言語で作ってもらったらメンテナンスの意味が無いでしょ。
作った会社に金払い続けてメンテナンスしてもらうだけだよ。
その会社にいなければ他言語の技術持ってても何の意味も無いでしょ。
結局雇って貰えるかどうかという話をしたいなら、VBAでも雇って貰えてるなら正解ということでしょう。
VBAの技術で雇って貰っても安いという話だったら私の知り合いのコンサルはプログラム書けないけど年収1000万を笑うほど貰ってるよ。
そういう目線で言ったら他言語含めてプログラム書いてる人なんて皆負け犬ということになると思う。
>>914 ???
C#使いがCOMやWin32を当り前のように使うなどというそれこそ当り前の話を私が知らないと思ってしまうんだ。
逆に驚きだよ。
こっちがそんな当たり前のこと気付いてないと思う所からあなたの技術カが推測できてしまうんだ。
ついでに言うとアセンブラを簡単というあなたの簡単と私の簡単は違うと思う。
昔、友人がHalloWorldを拡張していくだけだからプログラミングは簡単と言ってたけど私の簡単とは違っていた。
>>916 そりゃ自分はあなたの持ってる技術なんて聞いてないし、レスからは全く技術力が高いとは感じとれないからね
技術力がある人ってレス内容にもそれが見えてくるものだけど、あなたのレスには全くそういうのはないです
> VBAの技術で雇って貰っても安いという話だったら私の知り合いのコンサルはプログラム書けないけど年収1000万を笑うほど貰ってるよ。
ここ意味不明なんだが
コンサルが1000万貰うのとVBAの技術料が安いのと何の関係が?
>>917 簡単というのはペーペーの新卒でその業界に入って、普通に勉強して、定年までそれで飯を食っていける程度のイメージかな
おじさんの簡単のイメージは?
>>919 「プログラムと関係ない他業界のコンサルで1000万以上稼ぐ人を知ってます。
彼に比べればプログラマなど言語を問わず負組でしょう。
なのでVBAと他言語の収入比較など虚しいだけなのでやめましょう。」
かな?
この人の日本語はいつもわかりにくい
>>919 1000万じゃ無いです。
少なくても先頭は1じゃないですね。
だから1000万を笑うわけですから。
VBAは仕事が有っても安いということを言う人がいるのですよ。
だからダメだと言う人が。
金は大事だけどそれだけだったらプログラム書いて金を貰うこと自体どうなのかという話になるでしょ。
所詮プログラマと言う人だっているでしょ。
安いからダメだと言うならここにいる皆をダメ出ししているようなもんですよということです。
>>918 う~ん。
それって全く同じことを私があなたに言っても良いですよね。
そういう発言って意味有るのかな。
技術がどの程度かという点は置いといて、発言自体を評価すると賢いとは言えないと思うのですが。
なんで逃げるとかの話になってるんだ?
与えられた環境でWin32APIが必要なら使うだろ
そんな事もできないような奴の話をしたいのか?
要するにできる/できないとかのレベルの低い話じゃなくて面倒かどうかの話
>>925 言って良いよ
俺は凡人って自覚あるからね
本当に技術力があるなら、どうぞ自然と敬意を持ってしまうような発言をしてみてください
さあどうぞ遠慮しなくていいですよ
>>926 つまりExcelの環境が与えられているのですよ。
その場合に本当にExcelがダメなら他言語でも良いでしょう。
私も他を勧めます。
でもここにいる他言語の人はそうでは無いわけです。
←これに反論したいかもしれませんがこのスレで何度何度もなされているのは、最初にどんな場合でもExcelなダメという他言語者からの批判に対して適材適所だというVBA側からの反論なのですよ。
>>927 あなたが凡人なら私に技術があるかどうかは分からないでしょう。
技術があるかないかについては相手の発言の中に出てきた具体的な文言から判断できることがあります。
そういうことを指摘もせずに何ら具体的なことも無しに発言しても意味が無いでしょう。
>>928 最初から全否定してる人はいないよ
本当にVBAを使うべき理由があるならくろうしてでもVBAを使うしそうでなければ他の楽な言語を使う
ただVBAを使うべき理由がそう簡単には見つからないというだけ
>>930 いや、違う。
最初から全否定している人ばかりだ。
こちらは何度も適材適所だと言っている。
VBAに合わない場合は勧めないとさえ言っている。
>>929 本当に凄い人ってのはですね
凡人から見てもわかるものなんですよ
凡人から見ても高い技術力が伺えるような発言をいつまでもお待ちしております
>>930 >VBAを使うべき理由があるならくろうしてでもVBAを使うしそうでなければ他の楽な言語を使う
私は同じことを同度も言っている。
それに反論してくるのはいつも他言語者達だ。
VBAオンリーになるはあくまで結果であってexcel自体が適材適所の範疇を超えて使われ過ぎなのが問題
帳票出力ツールでもDBでも無ければメモ帳ですら無いのに
>>932 既にそういう発言には意味が無いと言って納得して貰っている筈ですが...
>>931 なんども適材適所って具体的になんなんですかって聞いてるんですけどね
無視されるか具体性のない要領をえない答えばかりでした
ここは技術力の高い方がビシッと
「こういうときはこういう理由でVBAがベストだ。
そして過去の具体的な事例はこうだ。
サンプルツールを作ったのでよかったらみんなも試してくれ。」
ぐらいの事を言ってくれませんかねえ
誰か技術力の高い人いないかなあ
本当はVBAを使ってエクセルで何してるの?
必要ないんじゃないの?
こういう時にすっと具体的な事例と論理的な解説をしてくれる人からは経験に裏打ちされた確かなスキルを感じる
あれこれ言い訳して発言を避けようとする人からは技術力を全く感じない
>>928 > 最初にどんな場合でもExcelなダメという他言語者からの批判
そういう低レベルの奴らと話したいなら
>>904とか俺にアンカーつけんな
VBAはすごく便利なツールだと思うけどなあ
進捗管理表や申請書の自動作成等、VBAで助けられているドキュメントは多岐にわたるよ。
ちょっとした処理なら手続き型で事足りるし、プログラミングに慣れていない人でも書きやすいはず
>>941 進捗管理票や申請書作成においてVBAを使う利点は何でそれは何故と考える?
>>940 ここはExcelVBAのスレでしょう。
Excelと付いている時点でVBAが有利になるわけです。
制約された有利です。
もう何度もされている議論です。
1つのブックだけで済むというのも大きな有利点です。
使う人自身でメンテナンス出来るというのもメリットになります。
Excelという制約の中が前提に有るわけだから他言語はその時点で大きなデメリットになるわけです。
そういうのが大前提になっているスレですよ。
寧ろ私が言わなくても分かっているべきだと思います。
普通の、Excelとは関係ない実行ファイルを作る点においてはVBAは検討の余地すら無いでしょう。
そんなことは当たり前の話です。
であるなら当然Excelの話になった時はVBAが有利になるというのも当然頭に入っているべきでしょう。
社のセキュリティ規則で、自作の実行ファイルなんて簡単に審査通らないつーの
そういう環境すら想像できないってどんだけアフォなのよってね
>>939 具体的なことを何も言えないのはあなたでしょう。
それをご自身も認めたでしょう。
それにVBAがベストな例など何度挙げられているでしょう。
根拠なき中傷しか出来ないのは哀れだと思います。
>>944 1つのbookになってしまうのでソース管理などで不利になります
ソースがあればどの言語でもメンテナンスできます
現実の業務はこのスレの中では行われないのでこのスレでの優位性には価値がありません
もう少しスキルが高そうな意見はだせませんか?
>>945 それは結構有るんですよね。
バイナリエディタ入れられないからVBAで作るとか。
簡易なもので済む場合は直ぐ作れるから良いけど。
エディタとか場合によっちゃメモ帳で我慢したり。
>>947 プログラム組んだこと無い人は黙っててくれませんか?
>>947 1つのbookであってもソース管理が出来るのはあなたを除いてみんな分かっていると思いますよ。
ソース管理ツールを入れられる環境であればですが。
入けられない環境なら他が有利とは言えないですし、入れられる環境なら1つのbookでもソース管理できるのはみんな分かっています。
>>945 自作の実行可能ファイルがダメでもPowershellという選択肢はありますね
そもそもセキュリティ都合で自作ツールすらNGな場合VBAマクロも制限することが多いですね
VBAでもデータベースや共有フォルダにアクセスして破壊してしまうことは可能です
そういった厳しい現場ではツールメンテナンス担当がいてその人が発行したツールをチームで使います
逆にexeだけ禁止してVBAは素通りという審査体制は非常に低レベルな現場と言えるでしょう
>>950 可能か不可能かで言ったらそれは可能でしょう
不利になるとは意味が違ってきますよね
仮にソース管理ツールが無い場合でも単一のファイルでのソース管理は面倒です
特定のクラスやモジュールだけ差し替えたり再利用したい場合など日常茶飯事です
あくまでプログラムはユニットを単位として製造するものなのでユニットごとに扱いやすい形態で管理出来たほうが便利ですよね
>>951 うんやっぱりアフォだな
一般的な大企業すら想像できないらしい
VBAに比較するとPowerShellはゴミです。
噛み合わないからです。
ちゃんとしたプログラムならCやC++、C#などにすべきでしょう。
Excelに関するならVBAの方が良い。
PowerShellはC#使いがVBAを批判する内容が同じように当てはまるし、Excel向きでもない。
PowerShellが使えない言語とは思いませんがあなたはPowerShellの用途を理解していないと思います。
VBAなんて煩雑な業務をちゃちゃと自動化可能だから利用すんのになんで再利用だのなんだの永続的なこと言ってんの?
無駄な仕事してる無能?
>>952 それ全部PowerShellの首を絞める言葉なの分かってますか?
適材適所分かっていますか?
PowerShellに向くものが有るとは思いますがあなたが言ってるのは向かない用途ばかりです。
>>942 VBAを使う利点と理由かー
①進捗管理表
利点:休日の判定や予実績の線を更新する作業が楽にできる点
予定と実績の工数を入力するだけで、誰がどの案件をどれほどやってるか一覧で管理できる。
理由:関数でももちろんできるけど、あまり関数セル多いと重くなるじゃん?グラフ操作もVBAならではだし
②申請書
利点:記入欄を自動で埋めてくれるのはもちろんのことだけど、一番便利なのは必要な書類の洗い出し機能。うちの職場では申請内容によって用意しなければいけない資料が色々あるんだけど、
所定のマクロに申請内容を入力するだけで、
他フォルダの中から必要なドキュメントだけ、記入を終えた状態で持ってきてくれる。
理由:前述した所定のマクロファイルそのものが、申請書でもあるのよ。せっかくExcel内のデータを使用するならVBAを使った方が良いと思っている
以上。
ほぼドキュメントの利点を言っちゃってるけど、
そんな便利なものを作れる = VBAの利点だよね
追記すると、
VBAそのものの強みは、やはり普及率が高いOfficeにくっついているという点と
プログラミング初心者でも取っ付きやすい点だと思う。
環境設定なぞ必要ないし、実行するのも簡単。
とにかくお手軽だよね。社会人のほとんどが実行できる環境を手に入れているプログラミング言語なんてVBAくらいだと思う
>>954 噛み合わないとはどういうことでしょうか?
具体的におねがいします
PowerShellの主な用途は日常作業の自動化やシステム管理ですが、
ちゃんとしたアプリケーションも作れます
GithubでのPowerShellプロジェクトは5万ほど、VBは3万程度です
すべてがちゃんとしたライブラリやアプリというわけではないでしょうが傾向はわかりますね
ちなみにVBA単体はgithubに検索候補としてリストアップされていませんでした(つまりVB.NETやVB6なども件数に含まれます)
PowerShellはCOMも.NETも使えるのでもちろんExcelに関する仕事もできます
C#がVBAを批判する理由は、
貧弱な文法やベーシックライブラリ、低機能なIDE、賢くないインテリセンス、
ソースやパッケージの管理しにくさ、セントラルパッケージの不在
などです(他にも多々あるでしょうが)
これらはPowerShellが備えているものばかりです
VBAを批判する理由は全く当てはまりませんね
>>955 VBAは業務処理をちゃちゃっと自動化するにはやや面倒すぎるプラットフォームです
その用途ならPowerShell、python、rubyがおすすめです
特にPowerShellはインストール制限が非常にゆるい(現在サポートされてるWindowsにはほぼ完備)のでどこででも安定して力を発揮してくれます
>>956 全く首をしめてませんね
PowerShellはテキストファイルですしファイルの分割が容易です
ユニットごとに管理するのはお手の物です
当然ソース管理ツールとの相性は抜群です
察するにあなたはPowerShellを使ったことがないようなので
とりあえずPowerShellを試して見てはどうでしょうか
>>944 こいつには何を言っても無駄かもな…
現状で有利/不利とかのレベルの低い話じゃなくて面倒かどうかの話
自分がVBAを避ける理由は単純でMS Officeのロードマップに位置付けが無いから
MSのリソースも限りがあるんだし、
VBA好きならPythonやjavaScriptの話が出る時点で大反対すべきだと思うんだけど
>>957 悪くないユースケースですね
自分は進捗管理にはRedmineなど他の管理ツールを使いますが
エクセルしか無い場合はVBAのほうが手っ取り早そうですね
申請書に関してはメリットには感じませんでした
入力と出力書類は分離したほうが管理しやすいと思いますよ
>>958 普及率と難易度でいったら該当する言語はPowerShellではないでしょうか
コンソール恐怖症の人が多いのはわかってますがpowershell_iseもあるのでチャレンジして欲しいですね
VBAだとあんなに面倒だった処理がこんなに簡単に、と驚くはずです
>>964 文面からしてお前のスキルが低いだけじゃね?
ほんとにプログラム組める?
VBAはいらないって本当なら VBA自体が無くなるんだけどね、MSもまだ無くさないみたいだし。
本当に必要無いなら次スレもないでしょう。
ってだけなんだけどねw
VBAスレ来て必要無いって騒いでる奴は何がしたいんだか、わからんよねw
>>964 うちの職場はソフトウェアのインストールについてかなり厳しくて…
あるもので対処せざるを得ないところがありますね。
それを踏まえると、ツールはExcelで作るのがベターなのです。職場によって正解は様々でしょうね。
申請書について厳密にいうと、表紙となっているExcelが、申請内容を記載するマクロとなっていて、そのマクロに申請内容をチェックするのです(①新規・②廃止…等)。マクロ内のチェック箇所がデータ
としてのインプットと言えますね。
該当する項目の申請書を指定したフォルダにコピーし、必要欄の記入をしてくれるというのが一連の流れです。
申請書についてはもっと良い方法があるのかもしれませんね。
こういった改善方法を探すのも、SEの醍醐味です。
>>958 > 社会人のほとんどが実行できる環境を手に入れているプログラミング言語なんてVBAくらいだと思う
お手軽かどうかを別にすれば
>>965が言ってるPowerShellに加えてC#とVB.NETもあるよ
>>965 主張は分かるけど、VBAが性質上事務系の職場でよく使われていて、他の開発環境を入れたりOSの付属物であってもアップデートが難しいことは考慮してほしいわ
・OSはWindows7
・PowerShell(ISE)は2.0
・VBA以外の開発環境は導入できない
が、ここにいる人たちの環境のほとんどだと思う
>>959 自分で書いてて分からないんだから...
要するにPowerShellはバッチ処理向きということ。
VBAはそういう用途も出来るけど、目的が違う。
Excel上で動かすのが基本になる。
データベースに接続してデータ集計するのはどの言語でもできる。
今日の集計じゃ無くて昨日の集計を見せてくれと言われて太字で囲まれたC3セルに昨日の日付を入れて隣のボタンを押して下さい言うのがVBAの用途でしょ。
それにちゃんとしたアプリケーションも作れますなどと言うから驚き。
あなたがVBAを批判する内容を見ればそんなことは言えないでしょ。
C#に比べてどんだけ面倒なんだよ。
そんな言い訳が通るならあなたのVBA批判にもまったく同じ言い訳が出来る。
>>971 その環境は2020年に消えるし、遅くとも2023年にはOSバージョン分離は解決するよ
Officeのバージョンは知らんけど
別にVBAが無くなったら代わりのものを使うでしょ。
VBAだってその場の環境に合っていただけ。
>>971 適当にググったらこんな記事がありました
https://news.mynavi.jp/article/20180104-566132/ 2017年12月で月1%差が減ってるのでこれだと逆転ももうじき…かもしれませんね
リストビューなんだけども、タブ区切りテキストファイルを読んでリストビューに追加をwinxpでやったやつを、win10で書き換えたら、一段ずれるんだけど正解の書き方ってなに?
listitems.add.SubItems(1) = ○○
>>974 >別にVBAが無くなったら代わりのものを使うでしょ。
じゃ、代わりのもの出してくれよ
>>972 >データベースに接続してデータ集計するのはどの言語でもできる。
何度も言われてますがそれはみんなわかってます
以下に手軽に安全にできるかというところが焦点です
VBAでは型安全なORMフレームワークもないでしょう?
>今日の集計じゃ無くて昨日の集計を見せてくれと言われて太字で囲まれたC3セルに昨日の日付を入れて隣のボタンを押して下さい言うのがVBAの用途でしょ。
これがVBAの使い方だとしたらガッカリですね
PowerShellならオプションで日付を指定すればいいですし
なんなら日付選択とボタンを配置したフォームを起動してもいいでしょう
たったコレだけのためにアプリケーションレイヤ以下を面倒なVBAで書くのはあまりにも非効率的です
>それにちゃんとしたアプリケーションも作れますなどと言うから驚き。
PowerShellはバッチが最も得意分野ですがFormsもWPFも使えますし単体でWebサーバーにもなりますのでリッチなアプリを開発できますよ
VBAと違って自作パッケージ管理もよく整備されてますし、セントラルパッケージも充実しています
特に大きな違いはユニットテストがサポートされていることでしょうかね
ちゃんとしたアプリケーションでは迅速かつ正確なテストは不可欠です
Pesterと言うパッケージなのですが実はコレPowerShell V5から(つまりWindows 10から)はMicrosoftのお墨付きでデフォルトで入ってます
>>977 それこそPowerShellでいいだろ
>>973 いや~そりゃ希望的観測すぎるんじゃ
XPのように7はかなりの期間残るよたぶん
ただまぁ確かにWin10が標準になればPS5.0(.NET4.5)が使えるようになるから、Excel以外の処理はそっちで…って事例は今より増えてくるだろうけど
肝心のExcel操作はどうだろう
理想を言えばMSがImport-Excelで欠けてる機能全部作り込んでPowerShell標準のコマンドレットとして提供してほしいけど、無理かなぁ
Python搭載よりよっぽど現実的だと思うんだけどなぁ
こうやってみてるとPowerShellって凄いんだな
そんな事まで出来るんだ
知らんかったわ
>>978 検討に値しない。
C3セルに入力と隣のボタンが最重要なのに。
そういう話すら理解出来ないんじゃ。
コード変更しちゃダメでしょ。
そういう用途じゃ無いって言ってるのに。
>>977 ???
無くなったらExcelPythonなりExcelVB.Netなりが出てくるでしょ。
そういう話想像も出来ないの?
>>978 リッチなアプリをPowerShellで作るのは面倒という批判に耐えられないだろ。
君の批判そのものなんだから。
まずC#の方が全てにおいて上だよ。
PowerShellに比べれば。
そしてそれに反論しようとすれば基本的にVBAと同じ論理展開になる。
用途が違うというね。
つまりPowerShellは全てにおいて中途半端とも言える。
VBAを批判する者の論理を進めていくとそういうことになる。
だからPowerShellユーザーのVBA批判は検討に値しない。
>>985 > まずC#の方が全てにおいて上だよ。
なら、C#で作ればいいだけ
事務システムの委託開発業務なんてよく成り立つよなあ、って驚く。
そんなのアウトソースするまでもなく社員がちょちょっと自分で作って完結させればいいんだし、
逆に言うとそんなふうにならなけりゃ米中に競争力で勝てない。
VBAでもPowershellでもなんでもいいよ。
プロの開発者はそんな委託仕事じゃなくて国際市場で勝負できるプロダクト作ってほしいものだ。
と常日頃思ってる自分にとって、ここでの議論は気に食わない部分が多少ある。
だから「プロがこんなとこに来るんじゃねーよ」と言いたくもなる。
>>985 まずPowerShellはC#コードをコンパイルして実行できるためC#の機能の大半を包括しています
その上でPowerShellはC#にない高級なコマンドレット、カジュアルな文法などを持っています
また、もともとシェル系言語ということもありサブプロセスとの連携やリモート処理はC#よりもだいぶ得意です
C#は強力な型システム、業界でも屈指の高い生産性を誇る非同期処理、
Visual Studioとの高い親和性などPowerShellにはない強みも持っています
そしてPowerShell実行環境はマネージドライブラリとして提供されているため、当然ですがC#からPowerShellを実行することも可能です
一方でVBAにはこれといって目を引くような強みはありません
互いに非常に強力な機能を持ちつつ、相手より得意な分野があり、相互に連携可能なC#とPowerShell
これらとVBAを同じ目線で語ることは不可能でしょう
>>988 まず、PowerShellはC#コードをコンパイルして実行出来ません。
あなたがVBAを批判する時に良く出てくる面倒だとかいうフレーズはVBAでも「~すれば出来る」というこちらの回答に対してでした。
ならばPowerShellに対しても「~すれば」という場合は出来ないと判断すべきでしょ。
PowerShellではPowerShell ISE以外で開発することは出来ません。
VisualStudioとの親和性?
そんなものは全く有りません。
あなたのVBA批判を元にすればそういうことになります。
VBAに対しては全ての条件を厳しく、PowerShellに対しては全ての条件を優しくでは困りますね。
VBAでも制約がある中で工夫でそれを乗りきっているわけです。
そういう工夫を否定するならPowerShellにおける工夫も否定して発言してもらわないと困りますね。
>>986 私はPowerShellの適材適所を認めています。
しかしVBE批判者の論理に則ればそういうことになるということです。
VBA は、Excel とか、人間が見て、表に書き込む用途には良い
でも、ボタンを押して、DB・ファイルI/O・テキスト処理などをする場合、
PowerShell, Ruby が適している
これらを、VBA で書くのは地獄だろ。
数行のコードが、数百行になる。
百倍!
Excel エンジニアは、プログラマーじゃないけど、
これらの処理は、プログラマーが求められている業務だから
仕様書・テスト・保守とか、ソフトウェア開発の領域だから、
Excel の領域をはるかに超えている
普通は、目標からツールを選択するけど、
先にツールを決めた場合は、やれる事を限定しないといけない
どこかに、そのツールを使っていくと、非常に不利になってくる分岐点がある。
そこがそのツール・技術・技術者の限界で、
新技術へ以降しなければならないというサイン!
>>991 >DB・ファイルI/O・テキスト処理
ユーザーが手元で作ってきた経緯が長い(下手すると10年以上)から、そういうのはオレオレ便利ツールが揃っているんだよ。
オレオレであったとしても大抵のことがPowerShellやRubyより少ない行数で書けて、品質が問題なければ十分。
十分てのは「わざわざプロに委託するまでもない」ていう意味。
大企業で異動が頻繁ではないユーザー部門だったら多くはその程度のレベルには行ってる。
もちろんExcel、VBAオンリーじゃないけどね。
逆にIT部門の方が全然ダメだったりする。
>>991 スクリプト言語と汎用言語の違いがわからない痛い人なのかね?
いい加減うぜーからどっかいけよクソアスペ
VBAに文句言ってる人がどこに文句つけてるのかまったく理解できてないから話も通じないしかみ合わない
一見マウント取ってボコボコに叩いているように見えるも彼が何と戦っているかは誰も知らない
>>989 PowerShellはC#コードをコンパイルして実行出来ます。
あなたの知っているPowerShell?と本物のPowerShellは別もののようです。
あなたは違う製品をPowerShellと誤認識している可能性があるので、まずは確認をおねがいします。
ただの言葉遊びですね
「〜すれば出来る」という抽象的な文にしてしまえば、まるでVBAもPowerShellも同じであるかのように錯覚させることができます
実際には「〜」のボリュームにて果てしないほどに差がつきます
PowerShellはISEのほかVisualStudioCodeでの開発がMicrosoftによってサポートされてます
VisualStudioにもPowerShell MVPの方が作成したPowerShell Tools for Visual Studioという拡張があります
結果的にVBAに厳しくPowerShellに優しく見えてしまったのかも知れません
ですが評価とは本来そういうものです
成績が悪いのはいじわるされているからだ、などと大人気ないことを言われては困ります
欠陥を補うための工夫と、より良い結果を導き出すための工夫を混同してはいけません
PowerShellはVBAのように足りないものを補うために頭を悩ませることはそう多くはありません
頭を使うなら、どんなものを作ればより高い価値を提供できるのか、について考えるべきです
人間の脳は有限なので、開発基盤由来の困難解決に脳のリソースを使うほど、品質向上のための脳のリソースが減っていきます
-curlmmp
lud20250126232602caこのスレへの固定リンク: http://5chb.net/r/tech/1527334657/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。
TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像
↓「Excel VBA 質問スレ Part54 ->画像>6枚 」を見た人も見ています:
・Excel VBA 質問スレ Part58
・Excel VBA 質問スレ Part64
・Excel VBA 質問スレ Part60
・Excel VBA 質問スレ Part68
・Excel VBA 質問スレ Part65
・Excel VBA 質問スレ Part69
・Excel VBA 質問スレ Part79(ワッチョイあり)
・【アズレン】アズールレーン 質問スレ Part54
・【PS4/XB1】SEKIRO:SHADOWS DIE TWICE 質問スレ Part1【隻狼】
・PSVita 質問スレ part4
・メギド72 質問スレ Part515
・Windows 10 質問スレッド Part51
・Windows 10 質問スレッド Part50
・【EOS】ECHO OF SOUL 質問スレ Part.3
・幻想神域 -Innocent World- 質問スレ Part14
・【PoE】 Path of Exile 質問スレ part28
・5chブラウザ「ChMate」質問スレ Part59
・【アズレン】アズールレーン 質問スレ Part50
・【アズレン】アズールレーン 質問スレ Part51
・ツクールVX Ace 初心者救済、質問スレ Part.2
・【チェンクロ】チェインクロニクル質問スレ Part57
・【プリコネ】プリンセスコネクト! Re:Dive質問スレ Part5
・iTunes 質問スレ Part14
・糖尿病初心者質問スレpart50
・インターネット質問スレ part59
・ロード初心者質問スレ part414
・ロード初心者質問スレ part404
・【PC】Terraria 質問スレ Part16
・【PC】Terraria 質問スレ Part11
・古代VBプログラマ質問スレ(Ver.6.0 まで) part65
・【PoE】 Path of Exile 質問スレ part36
・冬の空親切な奴が何でも質問に答えるスレ Part566
・【スクスト】初心者・質問スレ part44
・【PoE】 Path of Exile 質問スレ part20
・【PoE】 Path of Exile 質問スレ part17
・【PoE】 Path of Exile 質問スレ part45
・花見親切な奴が何でも質問に答えるスレ☆Part534
・【アズレン】アズールレーン 質問スレ Part34
・【馳為】CHUWI タブレット 質問スレ Part.4
・Android 質問スレ Part51 【アプリ質問は他で】
・【ウィルス情報質問 総合スレッド★Part51】
・Mozilla Thunderbird質問スレッド part.21
・Second Lifeセカンドライフ質問スレ Part44
・【LoL】League of Legends 質問スレ Part64
・サマナーズウォー: Sky Arena 雑談質問スレ54
・【アズレン】アズールレーン 質問スレ Part44
・【アズレン】アズールレーン 質問スレ Part14
・【PoE】 Path of Exile 初心者・質問スレ part49
・【初心者】機動戦士ガンダム EXVSFB質問スレpart10
・【PoE2】 Path of Exile2 初心者・質問スレ part2
・【Dead by Daylight】PC版質問スレ【DbD】 part4
・iPhone 質問スレッド part55 【本文引用禁止・ワッチョイ有】
・【TESO】The Elder Scrolls Online 質問スレ Part34
・【オルサガ】オルタンシア・サーガ 質問スレ Part14
・【DQB2】ドラゴンクエストビルダーズ2 質問スレ part4
・【プリコネ】プリンセスコネクト! Re:Dive質問スレ Part57
・【プリコネ】プリンセスコネクト! Re:Dive質問スレ Part58
・【ロマサガRS】ロマンシングサガ リ・ユニバース質問スレ Part56
・【3DS】ドラゴンクエストモンスターズ ジョーカー3 質問スレ part5【DQMJ3】
・幻想神域 質問スレ Part41
・高校数学の質問スレ Part434
・MTB初心者質問スレ part109
・ロード初心者質問スレ part464
・iPhone 質問スレッド part31
・ロード初心者質問スレ part439
・ロード初心者質問スレ part406
20:24:17 up 64 days, 21:23, 0 users, load average: 9.44, 9.26, 9.35
in 1.6020121574402 sec
@1.6020121574402@0b7 on 062109
|