はてなキーワード: vbaとは
現在、中小企業でアルバイトしているものです。現在の仕事内容経験に対して、待遇は適正でないように感じ辞めたいです。
仕事内容:パワポ作成、請求書データベース管理、VBAでの社内システムのメンテナンス、pc関連の雑用全般。HPの管理。
不登校の子供と小さい子供がいるためもう辞めたいが、自分が不完全な社内システムを作ったせいで(その罪悪感もあり)辞めるに辞められない。自分以外の社員は全員pc知識が全くありません。大変小さい会社です。新しい人間を雇ってくれと言っても人が集まらないと言われました。どうしたら辞められるでしょうか?
ChatGPTに日本語で命令したら秒で作ってくれるのでVBAやGAS書く能力は不要になったんだが。「A1からI9に数独の初期値入れてあるシートの残りのマス埋めるVBAマクロ作って」の一言で数独解くの作ってくれるぞ
ChatGPTが補足している通りロジックは基本しか使っていないので初期値から最終形までに仮定して入れる局面があるものは解けないし非効率ではあるものの初級は解けるし遅いPCでも一瞬で終わる。必要なのは入力の形と欲しい出力を日本語にする能力とHello World実行できるレベルの知識。コード読んでデバッグできる能力があればなおよいがGPTに教えてもらえばいいし、今業務やってる派遣の人に動作確認してもらって不満なところをAIに修正させればよいので業務をよく分かっている社員にやらせたほうが会社としてはいい戦略。
A1からI9に数独の初期値入れてあるシートの残りのマス埋めるVBAマクロ作って
数独を解くためのVBAマクロを作成するのは複雑ですが、以下は一つの例です。このマクロはシートのA1からI9の範囲の数独を解きます。
Function IsPossible(y, x, n, grid) As Boolean Dim i As Integer Dim j As Integer ' 同じ行や列にnが既にあるか確認 For i = 1 To 9 If grid(y, i) = n Or grid(i, x) = n Then IsPossible = False Exit Function End If Next i ' 3x3のボックス内にnが既にあるか確認 Dim x0 As Integer: x0 = ((x - 1) ¥ 3) * 3 Dim y0 As Integer: y0 = ((y - 1) ¥ 3) * 3 For i = 0 To 2 For j = 0 To 2 If grid(y0 + i + 1, x0 + j + 1) = n Then IsPossible = False Exit Function End If Next j Next i IsPossible = True End Function Sub SolveSudoku() Dim grid(1 To 9, 1 To 9) As Integer Dim i As Integer Dim j As Integer ' グリッドをシートから読み込む For i = 1 To 9 For j = 1 To 9 grid(i, j) = Cells(i, j).Value Next j Next i If Solve(grid) Then ' 解をシートに書き出す For i = 1 To 9 For j = 1 To 9 Cells(i, j).Value = grid(i, j) Next j Next i Else MsgBox "解けませんでした" End If End Sub Function Solve(ByRef grid) As Boolean Dim i As Integer Dim j As Integer Dim n As Integer For i = 1 To 9 For j = 1 To 9 If grid(i, j) = 0 Then For n = 1 To 9 If IsPossible(i, j, n, grid) Then grid(i, j) = n If Solve(grid) Then Solve = True Exit Function End If grid(i, j) = 0 End If Next n Solve = False Exit Function End If Next j Next i Solve = True End Function
このコードをVBAのモジュールに追加して、シートに数独の初期値を入力してからSolveSudokuマクロを実行すると、マスを埋めることができます。
ただし、このコードは基本的なバックトラック法を使用しており、非常に複雑な数独には効率的ではない場合があります。より高速な解法や最適化を求める場合は、追加の手法やアプローチが必要です。
https://si-coding.net/sudoku4.html
2 3 5 7 8 3 3 4 5 1 6 6 1 2 4 4 9 8 2 2 5 1 3 9 4 6 1 4 1 2 6
1 6 9 2 3 5 8 4 7 4 5 8 1 6 7 9 3 2 3 2 7 9 8 4 5 1 6 5 3 6 7 1 2 4 9 8 7 1 4 3 9 8 6 2 5 9 8 2 5 4 6 1 7 3 6 9 1 8 2 3 7 5 4 2 4 5 6 7 9 3 8 1 8 7 3 4 5 1 2 6 9
Excelはマクロ/VBA/処理自動化なんかを扱った本がたくさん出版されてるので、職場が物理書籍持ち込みOKなら特に悩む必要ないと思う
情報が断片化されたりコンテキストが抜けてたりゴミみたなコピペ記事ばかりなネットの情報より良い場合もある
・マイクロソフトオフィス/ウィルスバスター/エッジ以外のソフトは使用禁止
この条件でマクロ作らんとならん。
こういう時になんか効率的な順序ある?
子供の頃BASIC言語でちょっと遊んだから原理そのものは漠然と分かる。
他人が作ったマクロ開いてコピペで機能追加したり二重で処理してる所見つけて早くしたりぐらいは出来る。
流石はてなーだ。
はてなーも質が落ちたと言うが、こういう分野ならまだまだいい感じやね。
②必要な作業を整理して、それだけを出来るようにメモを作り印刷する。
③記録ボタンを押して、印刷したメモを見ながら作業をし、記録完了する。
⑥ググって一通り解説を見て、求めている解説のタイプを把握する。
⑦本屋やKindleで求めているタイプの解説が載っている本を買う。
⑪持ち込んだ紙を見ながら職場のマクロを改修する(この辺雑誌見ながらBASICのゲーム作るアレじゃねえか。令和に何やろうとしてんだろ俺)。
⑫改修版のマクロを動かしてみる。
⑬不満点やバグを洗い出して家に帰ってまた調べる。
⑭満足するまで⑫と⑬をループ。
って感じかあ。
うんこれで良さそうね。
あとは中古のPC買うかWEBのOfficeで代用できるか最新の365でもある程度再現出来るのか調べてみて家でPTSDサイクル作れるようにしたらモアベターかね。
職場(ネット環境なし)でトライ&エラーはしたいから逆引き辞典みたいのはやっぱ欲しい気はするが。
でもウチの職場でVBA本読むのも自分のスマホで調べ物するのも周囲からの白い目はあんま変わらなそうな気がするんよね……。
職場辞めろについてはマジでその通りなんだけど、今の「Excelでマクロを作るだって?そんなの出来るわけねえぜ!俺たち方眼紙魔術師がマクロに手を出したら神罰が下るぞ?」なしょっぼーい環境に慣れちゃってるから他所で上手くやれる自信がないのよね。
じゃあこの会社潰れたらどうすんのって話ではあるんだけどねえ。
どうするんだろうね。
こんな使えないオッチャンになっちゃってねえ。
アハハ(ちいかわっぽい感じで
https://chat.openai.com/share/c80d83ea-752b-4561-a162-7ea0bd116d56
Option Explicit
Dim objExcel, objWorkbook, objWorksheet
Dim strFolderPath, strSourceFile, strTargetFile, strSearchString, strReplaceString
Dim intLastRow, intRow, intColumn
Set objExcel = CreateObject("Excel.Application")
strFolderPath = ".\" ' スクリプトと同じフォルダにあることを仮定
strSourceFile = "変更一覧.xlsx"
strTargetFile = "変更一覧.xlsx"
Set objWorkbook = objExcel.Workbooks.Open(strFolderPath & strSourceFile)
objWorkbook.Sheets("1月").Copy , objWorkbook.Sheets("1月").Index
objWorkbook.Sheets("1月 (2)").Name = "2月"
' セルの値の置換
Set objWorksheet = objWorkbook.Sheets("2月")
objWorksheet.Cells(1, 1).Value = Replace(objWorksheet.Cells(1, 1).Value, "1月", "2月")
objWorksheet.Cells(2, 7).Value = Replace(objWorksheet.Cells(2, 7).Value, "2023/2/14", "2023/3/14")
' 最終行の取得
intLastRow = objWorksheet.Cells(objWorksheet.Rows.Count, 1).End(-4162).Row ' xlUp
' 値のクリア
For intRow = 8 To intLastRow
For intColumn = 1 To 6
objWorksheet.Cells(intRow, intColumn).ClearContents
Dim objFSO, objTextFile, strContents, arrLines, arrFields, strNewContents
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(strFolderPath & "変更一覧.txt", 1)
strContents = objTextFile.ReadAll
objTextFile.Close
arrLines = Split(strContents, vbNewLine)
For Each strContents In arrLines
arrFields = Split(strContents, ",")
For Each strContents In arrFields
If IsNumeric(strContents) Then
strNewContents = strNewContents & "'" & strContents & ","
Else
strNewContents = strNewContents & strContents & ","
End If
strNewContents = Left(strNewContents, Len(strNewContents) - 1) & vbNewLine
' データをシートに貼り付け
Set objWorksheet = objWorkbook.Sheets("2月")
objWorksheet.Cells(1, 8).Value = strNewContents
' セルの値の置換
objWorksheet.Cells(123, 1).Value = Replace(objWorksheet.Cells(123, 1).Value, "F", "FH")
objWorkbook.Save
objWorkbook.Close
objExcel.Quit
大したこと言わないよ。
大昔だ。ブラウザがNetScapeでWindows2000からXPに移行し始めたみたいな頃。
MS SQLにMS AccessをUIにしたクラサバシステム。それなりに需要があったんだ。
んで、データベースが何なのかすらわからない新卒の自分が参考書どおりに作って言われたことが
DoCmdは使うな!
最初なんで?と思ったが、確かにこれはある意味正しかったと思う。
全ての処理をVBAで組むことになるので、VBでも同じような処理を書けるようになった。
レコードセットとかカーソルとか、DoCmd使っていたら理解できなかっただろう。
後々ASP(.netじゃないほう)での開発やら、OracleDBの…なんだっけ?oo4oか、とかの操作がイケたのもそのおかげだろう。
その後の勉強不足で、VBの呪縛から抜けられないまま現状に至るわけだが。
なのでもし、仮に、万万が一Accessで恒久的に使うかもしれない何かを作ることを迫られたら断れ!
微無能のシステム管理者が3名体制でそれぞれがいろんな部署の業務をVBAで効率化してたんだけど、そのうちの1人が抜けることになった結果、そいつが管理メンテナンスしていた業務を他の2人が全被りすることになってそれに耐えきれなくなった1人が7月末に退職して、そいつの分まで全被りすることになった最後の1人も今月末で辞めるらしい。
いや草でしょ。
元々業務のIT化の部署が立ち上げられたときに管理者たち(そもそもシステム部門として就職したわけじゃなくIT系の資格を履歴書に書いたことで他部署から異動させられた連中)は「俺たちが作るんじゃなくて既成のシステム入れましょうよ。メンテナンスもプロに任せた方がいいですって」と主張したのだが、「コストがかかりすぎる」と却下されたという経緯がある。
一人は俺の同期だったのでよく話は聞いてたけど、学生時代に応用とっただけでギリ基本的なSQLは書ける程度で自分でシステム構築やったことなんか一回もない、普通のITパンピーでマジでしんどいってずっと言ってた。俺も一応趣味で触る程度にはやってたのでVBAの中身見たけどコピペと継ぎ足しと謎コメントが乱舞する状況で、他人のこれメンテしろって言われて絶望しただろうなぁと容易に想像がついた。
問題は、誰も管理メンテ出来ない大量のVBAが弊社に残ってしまうということだ。
エージェント名の直接記載は控えておくけど、下記で検索すると良いと思う
開発やデータ入力や単純事務の案件が多いんだな。なのでキャリア違いかもしらん
増田はSI的なことやってたと以前に言っていた増田かな?いちおう未経験で開発案件に応募できるかエージェントに聞いてみよう
探せばヘルプデスクの仕事もあるとは思うが、あんま、いまと変わらんのじゃないかしら?
インフラ・サポート系は、席に穴あけないことが大前提なので、障がい者雇用でも、一般雇用と変わらない水準で出社求められるよ
それであったら、一般雇用で働いた方が給与良いし経験も積めるよね
障がい者雇用としてはめっちゃ高給(800万以上)のPM、PMOの求人や設計・案件管理のお仕事などもあるけど、
なにをするの?
このプログラムは、障碍者の方々にマイクロソフトの契約社員として IT 関連の研修を受けていただき、ITスキルや資格を身につけ、将来的にIT のスペシャリストとなっていただこうとするものです。 IT業界での就職やスキル取得、エンジニアとしてのキャリアをお考えの方のご応募をお待ちしています。
月収25万くらい、1年目は月・水・金の出勤、2年目は月・水・木・金が出勤日。あとは自宅で自習。
ひと通りMSのインフラは任せられるようになる って言うプログラムだったよ
https://www.microsoft.com/ja-jp/mscorp/diversity-itlearning/program.aspx
気長に待つ
たぶん30万くらいなら貰えるんじゃないかな
データサイエンティスト養成とか、おそらくSESにぶち込む気なんだろうなセット(Java、C#、Python、PHP、SQL、VBA)とかあるよ
ーーー
<追記>
このひと、発達ネタ、モテネタ及び男女厨ネタ、結婚ネタ に必ずやってくるのよな
このひとのブクコメのしょーもなさ、発達障害ぜんぜん関係ないと思う
障害者雇用だとどうしても東京や大阪の求人が多い。フルリモートの職種探すのも手かな。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230628104359
↑ 『首都圏じゃなきゃ無い』ということもないが、フルリモートで発達障害も働けるということに異論はないようである
2023/06/14
正社員で残業バリバリしようとしたら体調崩して障害者雇用(非正規)に転職せざるを得なかった。私も本当は稼ぎまくって夫を養いたかったけれど、スペックがそれに追いついてなかった。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230614101708
↑ ??? フルリモートで働けば良いじゃん。それ発達障害やスペック関係ある?
2022/12/18
“なんやかんや対処出来る = 特段仕事で困っちゃいない のよね” なら増田は大丈夫なんだと思う。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20221217121250
↑ "増田は"とは?キミもフルリモートで働けば良いじゃん。その発達障害だと困る働けない前提なんなん?
2023/06/22
同僚の人、服薬したり通院したりはしてるんだろうか。あんまり自分の困りごととして認識してないっぽいのが気になる。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230621230631
↑ うん。だからその発達障害だと困る働けない前提なんなん?フルリモートで働けば良いじゃん。あとなぜ服薬しないといけないのか?
2023/04/26
↑ いやだからさ、フルリモートで働けば良いじゃん。自分ができないことは把握できているんだよね?
急にキレるのは問題だと思うけど人より体調に波が出やすいから無断欠勤は多めに見てあげてほしい。
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230610181313
↑ 絶句。そら働けないあたし仕方ないにもなるわ。発達障害関係ないと思いますけどね
(部下の場合は問題発生しないが、部下ではない体育会系の相手がシンドイという話に対して)
体育会系って称するのはあってる?
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230616104828
↑ あのさぁ・・・
(リスクは承知。巡り合わせ。「かわいそう」と叩く犬エアプ、老犬引き取るといい。犬は幸せになるし、人を叩く暇はなくなるし、犬はかわいい。という話に対して)
https://b.hatena.ne.jp/entry/s/anond.hatelabo.jp/20230616232316
↑ あのさぁ・・・
人員補充で人事に新しい人入れてって頼んだら集まらなかったのか派遣のおっさん(46)を連れてきた
小太りで覇気のない顔で
課長(44)は「46で派遣?w使えないだろw」って早く別の派遣と交換してほしがってた
俺は「いやいや何か理由があって派遣なのかもしれないし」試してみましょうと言って仕事をさせた
派遣のおっさんはエクセルにデータを入力して必要な数値を算出する仕事だったんだが
まず入力が遅かった
そもそもエクセルの仕組みも理解しておらず必要な数式を消してしまったり、VBAをいじらせたら変なことして動かなくしてしましった
(結局俺が直した)
若い子なら仕事が終わってから勉強してくるんだろうがそんなそぶりもなかった
また電話も取らないし、
お昼休みの雑談にも入らず自分の席でスマホゲーム(ウマ娘ってやつ?)をやってる
上司も「俺の予想通りだっただろw」って言われて反論できなかった
やっぱり亀の甲より年の功なんだなあって思ったわ