はてなキーワード: VbAとは
1年半前に社内SEの真似事をする職からプログラムを書く職に就いた。
年収は下がるし仕事内容が大変なのはわかった上でどうしても何かを作る方に関わりたかった。
社内SEの真似事をしてる頃は依頼があればVBAで少しは作ることもあったが、基本的にはヘルプデスクや内部調整、サーバーのお守りがメインのお仕事だった。
仕事自体はそんなに大変ではなく、複雑な人間関係の中でもそれなりに立ち回れていたと思う。
それでも自分が何かを作ったという自信と誰かと一緒に何かを成し遂げたという気持ちが欲しかった。
プログラムを書く職にも色々あって、実際に開発をしたことのない僕を雇ってくれたのは派遣と受託メインの会社だった。
これから誰かの役に立つようなモノを作る側に関わるんだと思うと少しワクワクした。
入ったばかりの頃は自分が知らないことを知っているこの人たちはきっと色々な経験をしてきたのだと思った。
半年経った頃には、この人たちが今までの経験でしか仕事をしないのだと知った。
新しいことには非常に億劫で今までやった言語以外はあまり触りたがらない。
何かわからなければ目の前にある機械で調べるわけではなく、ひたすらにわからないと唸っている。
以前はこうだったのできっとこうだろうと試しつつ上手くいかなくても別の原因を探らない。
この業界にいる人は何かを作ること、問題を解決することに少なからず興味があるのだと思っていたけど、そんな人はあまりに少数なのだと知った。
会社は会社で人が足りない。新人を採用したい。と言いつつ入ってくる新人は適当な案件に飛ばしなんとか生き残った子を育った育ったと言いながら別の案件に飛ばす。
生き残れなかった子はなぜ出来ないんだと陰口を囁かれている。
今いる人間の待遇はほぼ変わらずに取ってくる案件は漏れなく炎上し、その案件に関わってた人が辞めていく。
1年半経った今、僕は正直どうすればいいのかわからない。
技術的に何か身についたとは思えず、残業続きで帰ってきて新しいことを学ぶ余力なんてなくてそのまま寝てまたお仕事。
週末も気付けば夕暮れに起床してる。
憧れは憧れのままの方が良かったのかもしれないと最近思うようになってきた。
きっと近いうちにまた転職をすると思うが、自分がどんな仕事をしたいのかわからなくなってしまった。
同業種に就いたところで僕がこの1年半で学んだことはそれほど多くない。
かといって今更他業種で受け入れてもらえるところだっておそらくはない。
それでもきっと多分今いる会社に骨を鎮めるよりは動いた方が幾分かマシだと思うので頑張りたい。
きっと今よりは良い方向に転がることを信じたい。
配列は 101 とか 109 とかで、配置は「(装置内の)キー配置(のアレンジ)」のことね。
以下、前提。
仕事・プライベートとも Windows を使っていて、手元は見ずにタイピングしてる。
Alt+1文字のアクセラレータや、Ctrl+1文字のショートカットキーも多用する。
Alt は次の文字と同時押しの必要がないし、親指で押せるから左しか使わないけど、Ctrl は同時押しする1文字を右手・左手のどちらがカバーするかによって、左右使い分けてる。
スクリーンショットの採取から Excel 文書への貼り付けみたいなことを年中やってるし、たまに VBA のプログラミングなんかもするので、カーソルキーとその上に並ぶ 9個のキーも、ほぼすべて見ないで押してる。(例外は Excl で使う Scrll Lock くらいか)
あと、肝心のタイピング速度は測ってないけど、体感的に全然早くない。もっとも、それで差し障るような事情もないので、そこは気にしたことはない。
前提、ここまで。
で、こだわりというのはタッチタイプを身に付けときに使ってたのが 106 キーボードだったので、この配列・配置でないといけない(打ち間違う)ってこと。
Ctrl は左右下端にないとダメだし、Shift もそのすぐ上の両端に配置されてないと困る。カーソルキーとその上のキー群の話は前述のとおり。
よって、これらが変な位置にあるノートパソコンのキーボードや同類の省スペースキーボードなどは、実用してるとストレスで気が変になりかける。
(右の Shift や Ctrl を押したつもりがカーソルキーや Home, End なんかに触れてた日にゃ、一瞬何が起こったかわからずパニックに陥りますぜ、旦那)
加えて、ポインティングデバイスもキーボードに近くないと、マウス操作とキーボードの行き来がスムーズでなく、これまたストレスフル。
よって、106キーボードのテンキー部分だけをスパッと切り落とした省スペースキーボードが自分にとってのベスト、という結論に至り、可能な範囲を探し回ったけど、当時唯一これに該当した東プレの Realforce 89 ND0100 は、お値段が立派過ぎて手が出なかった。
数年かけて、ネットオークションで比較的手ごろな中古品を入手するまでの間は、やむを得ず、109 キーボードから 10キーをカットしたデザインの、FUJITSU FKB8744-607 を 2本調達して、仕事と自宅で使ってたけど、打鍵感には全然こだわりがないので、Realforce に変えてみた後は、価格差ほどの感動がないことに拍子抜けしたもんだ。
ちなみに、109 配列も修練の結果、間違って Windowsキーを誤操作しない程度には使えるようにはなったけど、一番好ましいのは左右 Ctrl の内側に余計なキーのない 106 の方。
(Windowsキー+1文字のショートカットは Vista の出始めのとき、面白がってフリップ 3D をちょっとやったくらいで、あとは使ってないな)
ネットで目にしたキーボード配列・配置にこだわりのある人ってのは大概、PC-98 配列か 101 英語配列押し(後者かつ Ctrl は A の横に変更って主張が大半)で、自分のように「106 のテンキーレス(カーソルキーとその上部の配置はいじらない)で Ctrl は左右下端」派は見たことないんだよな。
同じ嗜好の人、いない?
会社によって制限が違うのだろうけど、PowerShell、Python、VBA、Jupyter lab、OpenCV、MS Office辺りで仕事をしている。
RPA流行ってるが導入されないので、inspect.exeでUI調べるしかない。
COM操作で出来る限りレポートの負荷を下げられないかと思うが、どう判断したかコメント追加しなければならず、減らせない。
実験の効率化もしたいところだが、M2M、IoTが叫ばれてからかなり経つが、RS232C以降になると余計にめんどくさかったりする。
Bluetoothが途切れたりとか。信頼性考えてEtherCATなんて設備組み換えを頻繁するから出来ないし、そもそも計測器についていなかったりする。
ロボットアームも検討したがまだ月100万かかり価格的にもまだ高い。
1年ほど同じ作業するならティーチングするコストもペイできそうだが、数日で実験内容も変わるので、そのコストも馬鹿にならないので諦めた。
メモリ4GBのノートパソコンを出来る限りフル回転させてるが、きつい。
ディープラーニングも自動化出来るかとTensorflowで試したが当たりまでだが死んだ。
MendeleyとGoogleアラートで出て来るのをタイトルと図をざっと見るくらいだ。
論文探したり読んだりするのを効率化するソフトもサービスも足りてないと思う。
SQL、JavaScript 、Excel VBA 、VB.NET、C#、Java。前者ほど触ってる期間が長い。SQLとJavaScriptが1年半くらい、Javaは参考書一冊読んだくらい。
Webで言うとフロントはAngularが少し分かる。サーバーはExpressが少し分かる。
RDBはテーブル15個くらいの社内向けWebシステムを一人で組んで現在半年以上運用中。今はテーブル40個くらいのシステム組んでるところ。
LinuxはUbuntuなら少し分かるけど、Docker周りは手を出したことがない。AWSとかGCPとかも分からない。
実務経験は無いに等しい。独学とプライベートの開発だけでこれまでやって来た。
できれば茨城県南だとありがたい。誰か雇って下さい。
RPAて、業務とシステムの間を繋ぐグルー的なものなので、業務やシステムが変わったら使えなくなる。
そんな一時しのぎな道具なので、いつでも捨てられるようなジャンクな処理だけを担うべきだと思う。
さらに、たとえジャンクな処理であってももっとオープンな技術やスタンダードな技術で実装すべきと思う。RPA製品がなければ動かないのでは将来は負債にしかならなくなる。
なのに!なんとしてもRPAを使って工数削減した実績を作るべし!という雰囲気が職場に渦巻いている!RPAにこだわるの気持ち悪い!
そのRPA製品を覚えるより、VBA覚えたほうがいいし、WEBスクレイピングを覚えたほうがいいですよ!と思うが口に出せない。
「RPAなら自動化してみようか」という人がいるのか?プログラム書けない人は自動化の発想すらないと思う。RPAも使えないでしょ。
と悲観しつつも、願わくば、RPAで自動化の機運が高まり、RPA以外の何らかのプログラムを書ける人が増えんことを!と少し希望を持ってみる。
★スペック
---------------------------
・文系卒。
・SE(手も動かしていた)
---------------------------
昨年の12月頃からQiitaやはてなブックマークを見てweb系に興味が湧いた。
3年ほどSEの経験を積んだのでWeb系もいけるだろと思い転職を決意。
そして面接へ挑んだのだが……クソ野郎どもにコテンパンにされてしまった。
「それってうちじゃ一か月で出来るんですが三ヶ月かかったのですか?」
例3 : 即戦力を求められる
「~~の部分は実務経験がない?それは困るねぇ~w」
★思ったこと
-------------------------------------------------------
・フルスタックを求められる
・まともな人生を送りたい人はやめとけ
-------------------------------------------------------
キモオタは人生の全てを趣味や仕事に捧げることがデフォルトですが一般人はそうではありません。
恐らくTwitterやQiitaにはそういう思考のオタクが溢れているためWeb系が天国に見えるのでしょう。
それらのサイトではよくSIerが批判されていますが普通の人生を送りたい人にはそれで十分なのです。
今SIerに居る方でWeb系のオタクに騙されそうになっている方はもう一度考え直してみてください。
日曜日が終わってしまうので、ここらで一発、何らかの生産的な行動をやっていきたいぞ、と思ったわけですけども、なぜかこうして増田に張り付いています。
前頭前野の敗北であり、辺縁系の勝利です。勝利、勝利、大勝利。長良は辺縁系ではありません。
なぜか私のPCデスクには知恵の輪が転がっています。なぜでしょう。お見舞いでもらった品です。なぜ知恵の輪。ボケ防止にとのことでしたが。
ところで、先程PCデスクと言いましたが、これは厳密に言うと、いえ別にそんな厳密とかじゃなくて普通に言ってそうなんですが、私が今パソコンを置いている場所は、PCデスクなどという大層な代物ではありません。
というかデスクですらありません。
私は椅子の上にディスプレイとキーボードとマウスを置いています。
正確には、椅子の上に、ホームセンターで買った合板を乗せて、それを机とし、周辺機器を乗っけているのです。
これは案外便利です。広い、安い、手軽、収納しやすい。見た目のアレさにさえ目をつむれば、非常に合理的な選択であると言ってよいでしょう。
あるいは、見た目などという些事に囚われていないことが、余計に合理的な選択であることを強調している、とさえ言ってもよいかもしれません。
ところで、さっきまで、やむを得ない事情により、VBAなる恐ろしい言語を使っていたのですが、これには様々な謎仕様があるようです。それらは名状しがたき恐怖で我々を戦かせます。
一般的に知られていると思われる謎仕様と致しましては、例えば、配列におけるReDimなるステートメントが上げられるでしょう。
他にも、例えばマクロの高速化のための方策として、範囲を配列に代入するというテクニックが紹介されることがありますが、この配列と範囲との間にも謎の関係性が存在しています。
この手のソフトウェアを扱うに当たり、いちいち一つずつセルに値を書き込むことはご法度、というのが定番ではありまして、私も素直にこの定石にしたがい、セル範囲を二次元配列に格納したりしております。
しかし、範囲を配列に代入した場合、その配列の要素のインデックスは、どうも1から始まるようなのです。
なぜ1スタートなのでしょうか。VBAの仕様においても、配列の添字はいちおう0から始まることになっているのですが、範囲を配列に格納した場合、0行0列の要素は空となっており、Array(1,1)にRangeの始点の値が格納されております。
まあたとえ1スタートであっても、言語内で仕様が統一されているのであれば、まだよいのです。
しかしここが彼の言語の恐怖ポイントなのでありまして、どういうことかといいますと、
すなわち、今度は逆に配列を範囲に代入、すなわち配列の各要素の値を対応する範囲のセルに書き込む場合、インデックスが0である要素から順に処理されるのです。
範囲を配列に代入するときはインデックスが1から始まるのに、配列を範囲に代入するときはインデックスが0から始まるのです。
Array = Range
Range = Array
とすると、一番上の行と一番左の列が、空白行、空白列になってしまうのです。
なんですかこれは。誰が考えたんですか。おかしいでしょう。私はおかしさのあまり死にました。
この理不尽さに比べれば、Collectionなる連想配列の添字が1から始まることなど些事に過ぎません。
昨日までJavaJavaしていた人は、どうやら配列なんぞには目もくれていなかった様子でしたので、この謎仕様に気づくこともなかったのでしょうが、悲しいことに、この謎仕様の配列を用いた高速化テクニックはほぼ必須のスキルでありますので、例の御人も、遅かれ早かれ、この罠に絡め取られていたことでしょう。
あるいは、この謎現象を回避するための方策はきちんと用意されており、無知な私はそれを知らないがゆえに、このような的はずれな不満をぶちまけているのかもしれません。
しかし、上述したような単純かつ直感的な代入が上手くいかないという仕様は、やはり、なかなかの欠陥ではないかと思うわけです。
まあそんな愚痴はどうでもいいのです。変な仕様は適当にハックしてやればよいのです。
でもクラスモジュールとやらのパワーは貧弱なのでそれも大変困難ではあります。
標準モジュールでライブラリもどきをちまちまと作っていくしかないのでしょうか。
とてもではありませんが、こんなもんを極める気にはなりませんので、そこら辺のことをいい感じにまとめてくれている知見があればよいのですけれども、しかし、まともな人間はこんなもんを相手にしたりはしない、というパラドックスがあります。
(https://sites.google.com/site/compositiosystemae/home/vbaworld/upper/interface はわりとよかったような気がします。システムハンガリアン使ってますけど)
こんなもんを扱わざるを得ないような環境に留まってしまっている私がおかしいという話もあります。
悪いことは言いません。pythonで書かせてください。お願いします。
そんな増田の切なる願いは、社会という名の抗いがたい泥沼に絡め取られ、今日も悲しみに満ち満ちたコードを生成していくのであります。
そういえば今日は休日でした。休日は普通楽しいものなのではないでしょうか。どうしてこんな悲しい気分になっているのでしょう。
答えは簡単でして、悲しいことを書いているからです。楽しい気分になるには、楽しいことを書く必要があります。
楽しいこととは何でしょうか。例えばオナニーなどが挙げられます。人生において、オナニーよりも楽しいことは、あまりありません。
よって、楽しくなるには、オナニーの話をすればよいです。
私は一時期、DLditeで同人音声を漁っておりまして、催眠に掛かるべく邁進していた時期もありました。
なぜ私は催眠に掛かれないのか。
集中力の欠如、衝動性の強さ、慢心、環境の違いなど、様々な要因が考えられますが、最も大きな原因と思われるのは、台詞がめっちゃ気になることです。
おっさんが考えた可愛い二次元の女の子みたいな台詞が、えらく癇に障るのです。
そのために、可愛らしい女性の声に没頭できないばかりか、声によって現実に引き戻されてしまう、という逆説に襲われるのです。
おっさんは蓮を咲かせる泥だという話もありますが、恐らく、真に良質な泥おっさんというのは、非常に稀な存在なのでしょう。
つまり、いいおっさんは泥ですが、悪いおっさんはゲロということです。
しかし、これもおっさんに限らず、大抵のことに言える話でありまして、良質なものはどこでも少ないものです。
生の増田を見てもそうでしょう。
ホッテントリに上がる増田しか見ないライト増田、あるいはブクマカには想像もできない世界が、生の増田には広がっています。例えばこの増田とかです。
(これは私見ですが、VIPやなんj、あるいは虹裏などと比べても、増田の毛色は違います)
増田のほとんどは泥であり、ホッテントリに上がった増田は花なのです。
何だかまた悲しい話になってるじゃないですか。なぜ私はいつも悲しい話をしてしまうのですか。
それは恐らく、心の通奏低音(俗用)のようなものが、悲しみに染まっているからです。