【プログラミング】 エクセルVBAの魅力
■ このスレッドは過去ログ倉庫に格納されています
難しいんだよ無理だよ実際やってみると
ただのプログラミングやんけ >>4
vbaが理解できず挫折したんだね
可哀想に >>10
しかもレトロすぎてモダンな言語でプログラミングするより難易度高いというね まずマクロで作って後からVBAでプログラムをスリムにするんだよ… VBAさえあればこの世の他のプログラミング言語は不要だからな なんでもできるフリして、
でも実は何をするのも意外と面倒で、
でもシステム破壊は大得意
それがVBA 記録ボタンて、自動生成されたソースの見づらい事、見づらい事 中学校とかでプログラミング教育が必修化したら、とりあえずVBAやらせとけばええ >>19
よりによって、なんでそんな糞言語やらせるんだよ
もうすぐPythonだかが使えるようになってお払い箱だぞ 基本的にVBAしか使えないけど業務がエクセルベースだから困らないわ
ただ忘れっぽいから各処理毎に何をしてるかコメント付けとかないと後で修正するときわからなくなる スラドで紹介されてた京大のPython入門書が優秀 プログラミングの基本がわかっていれば
変な癖のあるものを除いて大抵の高級言語は使える
変な言語、VBAとか... ぶっちゃけ、VBAでもいいけどねえ。
そんなに変わらん 言語仕様どうこうじゃなくて
何が出来るかが大事だからな
VBAはEXCELの操作が自動化出来る、これに尽きる あんな腐った仕様の言語なんて使うな
データは全部CSVにしてRかPythonで操作しろ VBAでドラクエと麻雀作った
麻雀は1人で積もって切るの繰り返し
相手がいないからチーポンなし
リーパイはするけど
テンパイ判定なし
上がり判定もなし
テンパイ判定は至難の技 環境構築がクソ楽
オフィス入ってれば良いんだから
この一点が最強すぎて使われてる感じ >>19
理系の息子が大学の授業でVBAやらされてた。
MARCHの大学でもこれ
やめてあげて、、 VBAで書くとシートとは別管理になるから
関数で書いたほうがすきだわ ITの世界で生きるならVBA学ぶのは害でも、その他の職についてエクセルとVBA使えたら仕事に役立たない?
お守りする情報システム部門が死ぬけど >>34
まじか……
高等教育だったらC++かjavaかpythonだと思ってたわ
なんでそんなもんやらせてんだろ? うちの子理系だけどPython c++ Java verilogやってたな
VBAはやってない
かわいそうにTeXもやってた >>13
最近はオブジェクト作成の記録が残らないから面倒 導入が簡単で結果もすぐにわかる
初心者にオススメのプログラミング学習だよ >>34
いや結構実利的だぞ
官公庁はしらんけど、民間の大企業での工学系、IT系のプロジェクト管理はいまだにエクセル信仰強いから
VBA使えると就職後すぐに管理職の人間と共通の話題ができる >>34
10年ほど前に工学部系の卒業生の後輩入ってきたけどCだったな
今どきCかよってびっくりしたわ
Cなんて20年以上前に絶滅したと思ってたわ >>42
うちの会社ではパートのおばちゃんがそれだよ
結構な大企業なのに詳しい人はITの方には専門はいるけどあの辺りは話が通じない奴らばかりだからね
その中間だから重宝されてる HTMLとCSSでホームページ作ってるんだけど
メールフォームはどうやって作るの?
メールフォームの形はHTMLCSSで出来てるんだけど、そこからアクションが発生しないんだけど >>44
LinuxとかマイコンボードがCベースだからだろ
電子工学、ロボット工学とかなら主にこの辺使うんだろ
そんなことも知らんのか RDBMSわからん人には最初はACCESSがいいな >>16
でもさ、それで不用な記述をどこまで削れるのかってまぁまぁ勉強になるよね
それでシェイプしたソース記述を学べるんじゃないかな >>38
javascriptもやってたわ
ただしES6とかではなく、ブラウザで動作する普通のJS。神経衰弱ゲームを課題でつくってた。
で、今はIoTをやってるゼミに入って、C言語やっとる、、、
もっとモダンな言語やってあげて欲しいですわ 昔は表計算ソフトで事務作業の90%は機械化できるとか言われていたからね、今ではVBAはほとんど日本語化してるだろ、ソースの記述作法はピンキリだろうけど VBAってのやってたら他の奴でアプリとか作れるようになるの?
むかし習ったVBAはなんかを記録して再現させるだけだったような気がするが >>54
COBOLで飯食ってた俺がEXCEL/VBAを触ってから3週間程度で伝票入力、請求書発行、報告書作成程度の仕組みは出来た
逆もまた真なりだと思うが 開発環境を用意せず誰でも扱えるってのが大きい
VBAはプログラマーとしてのスキルではなく
エクセルユーザーとしてのスキルだろ >>57
違うんだよ
うちの息子がやらされてたのは、VBAで一本一本線を引いて図形を作るて課題
しかも座標指定で線引かせるのよ
社会に出てVBAでそんな機能絶対に使わない
もうね、見た瞬間アホかと
学生がかわいそうだわ >>20
金かからないからだろ
会社だとほぼ入ってるし >>44
でも、C知っとけばどうにかなる
vxworksとかcだし >>58
そんなの会社で作った
画像読み込んで回りに引出線みたいなの引いて更にテキストボックス着けてレポートのフォーマット作るやつ
順番に図の番号入れて目次作る 世界一流通してるプラットホーム
小バカにしてる奴は井の中の蛙 基本スキル程度の言語
これができないとメシが食えない…こともないが 開発部門にいるけど周りは誰もVBAは書けない
死後と忙しすぎて覚える暇がないらしい VBAが世界一とかw
組み込みとか知らんのだろうな >>18
COBOLとか出てる時点でお爺さん向けの怪しいサイトかな Vbaの魅力ですか...
Cのような比較的新しい形式のproceeduralを猿真似してるくせに言語形式はbash辺りで成長が止まってるウンコってことですかね >>58
たまに使うよ
Excelだと塗りつぶしが不自由だし、曲線では描ききれない場合もある
拡大率によって塗りつぶしがずれることもあるな
そんなとき、VBAを使えば複雑な線もバッチリ
なお、イラレを使った方が10倍速い エクセルならメールでもやり取りできるし配布も簡単。
ワケわからんシステムでOS変わったら使えなくなるなんて心配も少ない。
何より事務方と密接になるのでモテまくり。 >>69
でも世の中現実的に使われてるのはCOBOL。
COBOLにもいくつも種類あって、
COBOL85熟知してる人間は、
たいていの言語には苦労しない。 >>75
COBOLもメンテやったことあるけど、クソだったよ
作ったやつがクソだったのかも知れんが エクセルで何かするならVBA
もっと良い言語もあることも知ってる
向き不向きで使い分けろ ExcelからACCESSにADOで接続して、そのACCESSからSQL発行する形で元のExcelファイルにアクセスした場合、
既にファイルが開いてますって怒られたりしない? 事務でエクセルメインに使うなら覚えておいて損は無いしエクセルVBAで出来るエクセルの仕事を他の言語でやる必要はない
ただこれだけは覚えておいてほしい
書いたら必ずコメントを残しておくんだ
引き継ぐ人のためにじゃない
自分でも忘れるから VBAって廃止されてJavaScriptになるんじゃなかったっけ? >>80
そうなる模様だが、いつになるか分からん
VBAをレガシ扱いにしてJavascriptかPythonに移行してほしいところ
移行後でも10年以上はVBAは残るだろうね 俺独学で良く知らんのだが、少しルールが違うだけで、どんなのもifで分岐してdoでループするだけじゃないの?
あとは作る人のセンス次第 今でもExecuteexcel4macroでしか出来ない事があるのに… 疑似ツールだってxlsmファイル渡されたときは、マジで('A`)な表情になったわ フリーのBorlanCコンパイラとメモ帳だけでコピペ一切禁止で
Windowsデスクトップに自作Window表示して
その中に表形式の選択ボタン配置するソース
を書かせるテスト問題やらせたら描ける奴どれだけいるのかって話
ExcelVBAならちょちょいのちょいだ VBよりはPHPやPythonのほうがいいんでねとか時には思うな。サーバ側実装とかあるし。 >>68
access vbaさんはデータベースの知識いるから敷居高くって... 正直言って俺でも作れて表だから何かダイナミックに動いてる気分になれる良いおもちゃ 遅れてる会社でエクセルがメイン。それでいてろくにシステム組んでない。かなりの量を処理することがあるけどこっそりVBAにやらせてる。
まわりはヒーヒー言ってるけど俺は余裕で仕事が終わる。
だけど画面見て四苦八苦してるふりしてるけどね。 >>78
エクセル自身のvbaで、自分のファイル開いてsql発行はできた。
ただ、書き込み(update文)ができたかはわからない 帳票出力
画面一覧表示
画面入力
↑
時代遅れ。
エクセル読み込み。
エクセル出力。
↑
当然の機能。csvじゃねえからなw?
そんな時代に、エクセルにマクロもつけ込むのなんて技術ですらない仕様でさえ出てこないマナーレベル。 会社でExcelとAccessが入っている環境なら一番簡単だからそれでいろいろ作るけど、そうでないなら使わない。 VBAのソースをエクスポートしてgitで管理できる
全部のソースをエクスポートできないという制限はある 今時エクセル使ってる会社なんかあるのか?
まともな会社ならR使うだろ インタープリターだからデバッグが簡単
汎用機のコンパイラーはヘキサダンプが読めずに挫折する よくわからん構文エラーになるから嫌い
人間様のやりたいこと読み取ってくれや 昔VAIO買ったら付いてきたAccessを「何に使うんだろう」と
ポチポチ弄ってたら書籍・CD管理が出来ちゃって
「これネットから見れたらカブり買い減るかも」と調べてたら
いつの間にかVBA覚えてたな 構文がゴミ
触る気が失せる
さっさとJSに置き換えられろ 他人が書いたコードの可読性はいかがでしょうか?
パット見た感じ、読みにくそうなんだけど、慣れの問題でしょうか?
Cに慣れてるせいか、関数は{}で閉じてないと不安でしょうがない。 VBAのおかげでプログラミングの便利さ楽しさ重要さを学べたから、今はpythonもJavaScriptも使いこなせるようになったわ
派生してHTML.CSS.jqueryも学んで、それこそ副業も達成したから偉大な言語やと思うで、VBAわ。 >>95
面白いのが同じことしてるのに関数使うよりVBAで新しい関数作ってさせた方が速い関数がいくつかあること 初心者だがVBA身につけたら他のプログラミング覚えるの楽とかあるんか?
仕事はExcelメインで統計深掘りしたいんでRとかpythonに進みたいんやけど ちょっとしたことをするならVBAで十分だろ
RとかPythonって人気はあるけど仕事とかそんなにないから覚えてもあんま意味ないと思う >>105
VBAは癖が強くてレガシーなんだと思うよ
Pythonなんかの流行りの今風の物を一度触ってしまうと
VBAのそのあたりが苦痛になる可能性がある 手軽に使えるのがいいわ
手持ちのデータはEXCELで管理するから覚えると色々便利
ただガッツリ組むと後悔する >>75
副業で教えに行ってるパソコン教室に、定年後のコボラーお爺ちゃんが勉強しに来てるけど、今のところどの言語もほとんど苦労せず習得してる。 C /C++はすべての動きが論理的に説明できるから
理解しやすいよ >>113
定年超えてまだプログラムやる気力があるのがすごい >>113
まあ前職で開発やってた人間だったら楽勝だろうな。
てかなんでそれでパソコン教室通ってんだ?て話だが。 >>115
>>116
端から見ると攻略感覚でVBAから始まって、今C++やってる。
C終わったらPythonやりたいって。
趣味なんだろうなぁ。
畏敬の気持ちで対応してる。 その言語で何を実現するかが問題じゃね
言語だけ覚えてもしょうがない Q.
「1ページだけ破れた本がある.
破れていないページの番号を合計すると15000になる.
破れたページは何ページ目?」
こういう問題ExcelでVBA使わずに力業で解くことはできますか?
とりあえずA列に1から始まる連続データを入れて、ドラッグして右下に出る合計値で174までの合計が15225となり、だいたいここいら辺が総ページなのかなと思いました。
B列に数式を =SUM($A$1:$A$174)-A23-A24 のような感じで入れて、、、なんかここから分からなくなってしまいました >>119
ページは裏表があるから
端数の225を2で割ってその数の前後のページが書かれている部分が破れたページとなる。 エクセルの良いところはセルをメモリのように使えるところ
これだけメモリを視認しやすいツールも無かろう >>119
>>120
112-113ページの紙って存在しなくない?
とりあえずVBAはいらなそう >>122
総ページ数が奇数はアリなのか
最後の1枚が片面だけってことか >>49
>>60
ということは俺が最前線に復帰してもまだ使い物になるってこと?
UNIX上がりだけど =SUM($A$1:$A$174)
の174の部分をCOUNTA(A:A)にしたいのですが
=SUM($A$1:$A$COUNTA(A:A)) とか
=SUM($A$1:$A$&COUNTA(A:A)) とか
""でくくってみたりいろいろやってもエラーとなってしまいます
どのように記述すればいいのでしょうか >>30
具体的に何が腐っているのか説明するべきだよ
できないなら腐ってるのはあんたの頭だ エクセルまだ255文字の呪い解けてないよね…(´・ω・`) Excelマイスター平成生まれの正社員エンジニア様に
「マクロもできねえのかよ」
とバカにされた昭和の派遣オジたんです
VBAとかやれば楽に覚えられるだろうけど
せっかく頑張って覚えたC言語上書きされたくねえし
javaなら俄然やる気出るんだが
新卒で入った会社でシーケンサーとかNCとか
底辺…低水準言語やらされた時はひたすら苦行だった
手応え無さ過ぎてこんなもんやり続けて年だけ取ったら路頭に迷うんじゃないかと 閉鎖的保守的環境ではVBAが最新鋭のぷろぐらみんげんごであのだ 仕様もよくわからん野良VBAが大量に出てきて
動かんからなおせとか言うやつがいるからきらい >>130
上書きなんてこと言ってるから進歩無いんだよ
どの言語でもベースがありゃ楽だろうが >>127
COUNTA(A:A)用の列を追加して、そこを指定する pythonってもてはやされてるけどそんなにいいか?
しょうがなく使ってみたけどどうしても好きになれん
perlと同じ臭いがする >>130
結局やらなかったんでしょ
せっかく覚えたC言語は役に立った?
シーケンサーは人手不足で引く手あまた
派手なWebシステムやアプリケーションだけがプログラムじゃない >>42
某官公庁勤務だけど結構Excel VBA使われてる
アンケートなんか基本Excelマクロで回答を自動生成してそれを提出するパターンが多い >>27
ヴァギナババア 後ろを向いたら石投げろ
ヴァギナババア 首を絞めたら動かない >>134
まあ楽だろうね
上の方にExcelVBAがJavascriptに置き換わるって話見て
親父が書いたExcelVBAを勉強してJavascriptに書き換えてやったら喜ぶかなとふと思った
>>137
Cに挫折した高卒無職にシーケンス屋勧めたら「工場はヤだ」とぬかしやがった
高級言語の高ーい壁を一度見上げたらシーケンサーなんて屁みたいなもんなのに >>127
INDIRECT使ってみたら出来そうに見えるけどどうかな >>130
全然上書きじゃないから安心して今からやれば?
C出来るなら鼻くそほじりながらでも大丈夫だろう。
>>140
javascriptはweb版だけで、ライセンス版はまだ対応しないんじゃなかった? VBAはレガシーだけど、ExcelAccessあれば何の準備もなく使えるのが大きい。
プログラマー雇うような会社ならともかく、そうじゃない普通の会社でpythonとか入れるのは環境整えるまでのハードルが高過ぎるんや。 >>125
Cを知ってれば他言語の理解が早まるってだけだろ >>130
頑張らないと覚えたとか書いてるのは使えるレベルになってるとは言わんぞ
サンプルプログラム入力しただけで他に何もできない馬鹿だろ? >>132
トリプル・アイで、画面フォームや入出力フィールドの設計してたのに比べたら天国だけどな >>143
typescriptベースのアレはクラウド上の処理言語としての実装だから、オフラインコンテンツとしては後回しじゃろね >>143
冷静にMS Office高くて買えないと思い
Web版Office検索したらまさかの無料と知っておらワクワクしてきたど
きっかけがないといい機会だから鼻クソほじりながらやってみる(・mb・) なんでみんなVBA嫌うの?VBAとSqlite3で何でも出来るじゃん。 数式を駆使したExcelシートよりも、VBAで書かれたマクロの方が遥かに解り易い。 キーボードマクロ以外は覚える必要なんて無いよ
あとは自己満足だ VBA 糞
Ruby 糞
今からやるなら Python
時点は C# >>137
ラダー屋が生き残ってるのは
いろんなアナログ回路や有接点リレー特有のノウハウとか
必要になるからな、ハンダ鏝握ったこと無いような人には
つとまらない BVAは本気で作るのにはめんどくさいけど値入れたら勝手に計算してくれる程度の作るなら一番簡単なんだよな スクリプト系はクソな文法の方がマシかも知れん
大規模なコード書こうとする奴が減るだろうし >>113
そのおじいちゃんマシン語とかも知ってるんじゃないかな
マシン語分かってるとちょっと言語仕様教わればどんな言語も理解するのに時間はかからない
オブジェクト指向もメモリ上でどうなるかが想像つくしね >>152
まあ、VBAの方がメンテナンス性高いしな
ただ、VBA出来る人は関数出来る人より圧倒的に少ないのが難点 >>69
Pythonも出てるじゃん
プログラマーの仕事があるかって視点の記事だろ >>5
社外に出すほどではないが、社内に出来る人いると、
珍重されて多少のワガママ通せる。 vbaはとにかくエクセルを操作するだけだから
正直三分の二はプログラムが出来上がってる
状態なんだよ
だから入りやすい
初心者でも簡単にできちゃうのが魅力 >>152
数式びっしり埋め込まれた巨大シートは気が遠くなる >>142
できました!ありがとうございます。
SUM()関数にINDIRECT()関数を食ってもらうんですね。
INDIRECT関数のところで良くつまずいている気がします。新しいものがぜんぜん身についてないのを痛感します。
=SUM(INDIRECT("$A$1:$A$"&COUNTA(A:A)))-A15-A16
Alt+Enterで改行すると
=SUM(
INDIRECT("$A$1:$A$"&
COUNTA(A:A)
)
)
-A15-A16 >>11
VBは記述量が多すぎるし、同じ単語で違う意味が多すぎるんだよな
VisualStudioが自動補完してくれはするけど、見返してみるとなんでこんな文字量多いんだよと
しかもVB開発者って総じて平均レベル低いからコーディングのアンチパターン盛り込みまくるし
C#に移行したら世界が変わった ソフト開発は参入障壁が低くて開発者のレベルのバラつきが大きい
新しい言語のが優れてるのは当たり前
VBAは古い言語で片手間プログラマーも多いから、専業プログラマーから見れば苛つく場面もあるだろう
世の中コンピューターだけで完結する物は少ない。しかし専業プログラマーはコンピューターだけしか見てない視野の狭い奴が多い
プログラム言語の優劣でガタガタ言われてもウザイだけ VBAは敷居が低いから、コーディングの暗黙のお約束的なもの(インデントとかコメントの使い方とか変数の名前とか)を全く知らない人でもそこそこ書けてしまうのが、お守りの時に頭抱えたくなる原因のひとつ。 昔のMZ2000とかPC-8001はROM BASIC標準搭載だっけ
今のExcelVBAみたいなもんかな
初心者が初めてのプログラミング言語でPythonやC#で挫折するより
VBAは慣れるのに丁度いい言語かも プログラムを学ぶ気なんて全く無いが
動いてるコードをツギハギしていろんなツールを作ってきたわ >>172
目の前の仕事を片付けるにはそうなるよね
プロにツール作りを頼む予算も時間も無いし VBAにパスワードかけてるやつの無能さが腹立たしい
そういうのに限ってろくでもないコード書いてる >>117
俺なんかVBからpythonという低きに流れたのに… コメントは何をやってるかではなく、何をしたいか、なんでこうなってるかを書いて欲しい
令和何年の法改正の対応としてーとか、消費税率改定対応とか、
何々部長の施策としてこういう方針に沿ってシステム改修とか
ソースを和訳したようなコメントはいらんねん
変数何々を取得とか、ソース見ればわかるねん てかExcelVBAって、最初から用意されているブラックボックスじみた部品を組み合わせる系のコーディング多くね?
組み立てる部品も説明が欠乏してるプロパティが多くて本気でブラックボックスじみてるし
最初から用意されてる関数とかも変な仕様のが多いし 関数呼び出しの記法が戻り値ありなしで違う時点でイラッとするよな
エディタもいつまでたっても古めかしいし 複数の項目の判定でかつそれぞれにANDやORを持ちたいときにめんどくさすぎる >>171
だな、ただ、MZ2000はROM BASICじゃなく
テープやディスクから読み込んで使う方式 >>176
タイトルみたいなコメントあるよな(´・ω・`) >>176
A=1 'Aに1を代入
IF B=2 THEN 'もしBが2ならば
CALL XYZ(A) 'XYZを実行する
END IF 'ここでIF文終了 >>119
布団の中で考えてみた
A列に総ページ数として、A2からA200ぐらいまで縦に1から順にいれる
同様に1行目を破れたページ数として、B1から横に200ぐらいになるまで順に入れる
B2に破れたページを除いたページ数として
=SUM(A$2:A2)-(B$1+(B$1+1))
をいれる
B2セルをガバッとコピペして15000を検索する >>182
事務職のおっさんやおねいさんがVBA習いに来ると、高確率でこういうコメント書きまくるwww VBAのおかげで儲けさせてもらいました
言語仕様がどうとかどうでもいいわ >>160
あとはライブラリの使い方覚えれば解決だもんな ループする以外で文字列の中の数字だけ取り出す方法とかありますか? 15年ほど前に地方の高専を卒業したが
選択できる言語がCOBOL、Fortran、Quick BASICだった
Quick BASICって何者だったんだろうか・・・
あとラダー言語は必修科目 >>187
ループを嫌う理由がわからんけど、
一行で書きたい?とかそんな理由なら
外部関数かdll作ってアクセスしたら。 >>188
ラダーって言語じゃなくね?
ニーモニックでかくなら
アセンブラにちかいけど。 >>190
IEC 61131-3ではちゃんとプログラム言語と定義されてるから言語なんだろう
いや言葉じゃないんだけどね
英語ではラダーダイアグラム、つまりぱっと見は図なんだけど
演算子を込み合わせて構成するからプログラム言語なんではなかろうか >>189
できるだけコードを簡素化したくて一行で抜き出せる命令文とかあれば使いたい。 >>42
日常の業務を自動化するのにとにかく便利なんだよな。
マクロがファイルに取り込まれているからなくすとか配置の心配もない。
文法が変とかのデメリットははこのメリットを相殺しない。 >>136
pythonは癒しの言語
書き殴ったスクリプトも少しずつpythonらしく変えていくだけで、読み通しやすい良いプログラムになる ■ このスレッドは過去ログ倉庫に格納されています