エクセルフォームで「かんたん議事録」
決定事項・決定日・改定日のみとして、使いやすさ・見やすさにこだわったエクセルフォームを作ってみました。
愛好家の方には申し訳ないが、私はエクセルが嫌いである。セル内の文字入れとかセルの調整とかめんどくさすぎる。
また世の中にはデーターベースでもない単なる文章なのに、「エクセルで作って渡しておけばいいでしょ?」
みたいな風潮が蔓延しているのが気に入らない。
あとこれはPDFでもそうだが「規格は統一されているはずなのに、互換ソフトだと文字化けしたりして安心して使えない」のも気に入らん。まあ既得権益ってやつだよね。
毎月の議事録がエクセルで書かれてて引き継いだんだけど、決定事項が複数行に渡っていて、しかも見やすさのために各々の間に1行空行を設けるものだった。「 番号 ー 決定事項 ー 決定日 」の感じ。
決定事項の行数は決まっていないので行数に合わせて番号とか決定日とかも「セルを縦結合してセンタリング」「内容を編集して行数が増えたり減ったりしたらセルの縦結合をやり直し」で、大した件数あるわけではないのにめんどくさすぎて辟易した。
最初はマクロでやってみたが、それでもまだまだめんどくさくて発狂。
「よーしこうなったらエクセルフォームってやつで退治だ!」でもフォーム作るにはVBA(Visual Basic for Applications)のコード書かなきゃいけない。ちょっといじってみたが、、、古い言語いじってる感と無理やりBasic感があってげんなり。
そこでChat GPTくんにコードを書いてもらうことにした。無料じゃ全然足りないので課金。月$20ナリ。
最初は良かった。
こっちが「こうしたい・ああしたい」と言うと、フォームの設置例やそれを使ったコードをどんどん教えてくれて「すげぇ!」「あっという間に完成しちゃうかも!」「これならプログラミングをやったことの無い人でも誰でもできちゃう」とマジ感動してましたが、そのうち雲行きが怪しくなってきた。
・ プロジェクトに頻回にコードやファイルのアップロードをしていたら、これ以上アップロードできませんになった。これは題名変えれば引き継ぎできるので一安心
・ 最初Chat GPT o4でやってたんだが、反応がのろくなり、反応待ちでフリーズした様になることが頻発。
・ レスポンスの向上を狙ってWeb版でなくwindowsアプリ版をインストール。
・ でもやっぱり待つので、「コーディングが得意」という、o4-mini-highに変更して現在に至る。
一番の問題は「エラー地獄」が発生するということだ。
こっちのエラー修正頼むと違う場所でエラーが出てきりがない。どんどん新しい関数を作るのでわけがわからなくなる。極めつけは「前に修正お願いしてうまくいっていたところが、修正前のコードに戻っていたりする」 「ねえ?AIのくせに認知症なの?」と言いたくなる。
やり方を大胆に変えてくる場合もあり、「問題なくできます」と自信をもって提示(おいおい)してくるのだが、大体エラーが出る。。。
最初は一部修正や一部コピペが面倒なのでコード全体放り込んで、「その修正入れて全体なおして」とやっていたが、認知症が発生してどうしようもないので、本当にコアの部分だけどうすれば良いか?を聞くようになったら少し改善。
かんたん議事録
そんなこんなでChat GPTと2週間ほど喧嘩して出来上がったのがこちらです。
1、まずこのファイルを右クリック
「プロパティ ⇒ 許可するにチェック ⇒ 適用 ⇒ OK」で一旦閉じる。

2、このエクセルファイルをダブルクリック。するとマクロを有効にするかどうか出るのでOKを押す。1回有効にすればファイルの位置を変更しない限り次から聞かれない。

3、次回からはファイルのダブルクリックでいきなりこの画面になります。

フォーム部分
・ 新規登録 : 下のテキストエリアに書き込んで押すと新規登録されます。決定日をセットしなかった場合は本日の日付が自動的に入ります。番号は一番最後の番号が付きます。
・ リストから削除、更新して保存 : 上のリストをクリックで選ぶ(ハイライトされる)と下のテキストエリアに全内容が表示されます。ここで削除をすれば削除、文章を編集して更新して保存ボタンを押せば編集内容が保存されます。
・ キャンセル : フォームを開いた時点までさかのぼり元に戻します。
・ 空行を追加・削除 : 例えば1ページ目の最後の文章が長くて2ページ目まで跨いじゃうってよくあることです。そういう時にはこの空行ボタンで1つ前のレコードの空行を増やして見栄えを整えてはどうでしょう?

フォームを閉じた後、もう一度出す
上のメニューに「議事録フォーム」というのがありますので、クリックすると左側にニコちゃんマーク(死語?)が出ますのでこれをクリック

注意点 : 今のところ1レコード20行までに制限しています。増減したい方はUserForm1のコードを修正して下さい。
行数制限を変更するには、以下の2か所を「20」から「5」、一部「4」に書き換えれば OK です。' ===== 新規登録(btnNew_Click 内) =====
' 20行超過チェックと切り詰め
If actualLines >
20 Then ' ← ここを 5 に
MsgBox "1件あたりの最大行数は20行です。超えた分は削除されます。", vbExclamation ← ここを 5 に
Dim arr() As String arr = Split(decisionText, vbCrLf) ReDim Preserve arr(0 To 19)
' ← ここを 0 To 4
に
decisionText = Join(arr, vbCrLf) actualLines = 20 ' ← ここを 5 に
End If
' ===== 更新保存(btnSubmit_Click 内) =====
' 20行超過チェックと切り詰め
If actualLines >
20 Then ' ← ここを 5 に
MsgBox "1件あたりの最大行数は20行です。超えた分は削除されます。", vbExclamation ← ここを 5 に
Dim arr() As String: arr = Split(decisionText, vbCrLf) ReDim Preserve arr(0 To 19)
' ← ここを 0 To 4 に
decisionText = Join(arr, vbCrLf) actualLines = 20 ' ← ここを 5 に
End If
議事録フォームのメニューからリボン動作は「 office UI Editor 」を使用していますので、名前やアイコンを変更したい方は下記などを参考に変えて下さい。
※ 不具合や改善希望あればコメント下さい。
ディスカッション
コメント一覧
まだ、コメントがありません