文頭および文末に文字を挿入するマクロ(ランチャー1)
2021年03月20日
エクセルで文字列として入力する場合、「’」を1文字目に入力する。
まとめて文字列にしたり戻したり出来たら便利だなってことで
文頭に文字を追加したり、1文字目を消したりするマクロを作ろうか。
文頭と文末どっちも操作できるといいかもってことで
ユーザフォームを使って作ってみた。
通番も一緒にできたら面白いので、
入力フォームに「¥n」を入力したら通番を振る仕様に。
ユーザーフォームは使い勝手はいいかもしれないけど、
いかんせん作るのがめんどくさい。
オートシェイプでお絵描きをして、
描いた絵の全部品の設定を調整しないといけない。
文頭と文末に挿入する文字の入力用にそれぞれ入力フォームを用意。
キャンセルボタンと実行ボタンを作り、ショートカットキーを設定。
キャンセルボタンにESCキーを紐づけ。
タブ遷移順序を調整して、文頭、文末、実行ボタンの順にEnter遷移可能にした。
ダウンロード
今回デフォルトから変更したプロパティは以下の通り。
オブジェクト名:strAddForm(フォーム名)
Caption(表示名):セル内容の両端に文字列を追加
オブジェクト名:stText '文頭文字
MultiLine(改行可否):True
TabIndex(タブ遷移の順番):1
オブジェクト名:edText '文末文字
MultiLine(改行可否):True
TabIndex(タブ遷移の順番):2
オブジェクト名:CommandButton1 ’キャンセルボタン
Accelerator(操作キー Alt + ...):C
Cancel(ESCキー紐づけ):True
TabIndex(タブ遷移の順番):5
オブジェクト名:CommandButton2 '実行ボタン
Accelerator(操作キー Alt + ...):A
TabIndex(タブ遷移の順番):4
以下ソース
PR
マイナンバーカード申請
2021年03月07日
マイナンバーカード申請で大ハマりした。
自分のカード申請は問題なくできたのに、娘二人のカード申請がうまくいかず。エラーメッセージは以下の通り。
「交付申請書に記載の申請書ID(半角数字23桁)と同じか確認してください。
申請書IDに誤りがあると正しくカードが発行されませんので、お間違いがないか確認してください。」
区役所で聞くも状況変わらず。コールセンターに電話するも、手入力しろだけの回答。
もう一度区役所に相談して、若手職員立ち会いでやったら、メッセージ出たまま普通に登録できたし。
エラーメッセージじゃなくて、警告メッセージだった。携帯使えないおじいちゃんみたいだわ。
メッセージ内容、レイアウト共にいけてねーよな。
自分のカード申請は問題なくできたのに、娘二人のカード申請がうまくいかず。エラーメッセージは以下の通り。
「交付申請書に記載の申請書ID(半角数字23桁)と同じか確認してください。
申請書IDに誤りがあると正しくカードが発行されませんので、お間違いがないか確認してください。」
区役所で聞くも状況変わらず。コールセンターに電話するも、手入力しろだけの回答。
もう一度区役所に相談して、若手職員立ち会いでやったら、メッセージ出たまま普通に登録できたし。
エラーメッセージじゃなくて、警告メッセージだった。携帯使えないおじいちゃんみたいだわ。
メッセージ内容、レイアウト共にいけてねーよな。
CSVファイルを1行目の内容で分類して結合するマクロ
2021年02月23日
仕事で急遽必要になり、突貫で作成。
過去のソースを流用して1時間でできた。
◆目的◆
フォルダ内にCSVファイルの一覧があり、1行目が日付情報、
2行目以降が登録データになっている。
CSVファイルをサイトに取り込む際に、
1アカウント1日あたりファイルっていう縛りがあり、
日付別にCSVファイルをまとめなきゃいけなくなった。
◆手順◆
1.ダイアログを表示して解析対象のパスを取得
2.Dir関数を使ってフォルダ内のファイル一覧を取得
(今回は、VBAで作られたCSVを結合するのでShift-Jisのみ)
3.ファイルの中身を1行ずつ読み込む
4.Dictionary配列を定義し、1行目の日付をキーに2行目以降をアペンド
(キーの存在チェックしてなければキー登録、あれば値更新)
5.全ファイル繰り返し
6.キー配列を定義して、Dictionaryカウントでループ
7.キーごとに値をCSV出力(Printを使用)
◆注意点◆
Dictionary配列に改行「chr(10)」を格納しても「・」が出力されるので
一旦「"†"」で格納して、Print時に「chr(10)」へReplace
以下ソース
過去のソースを流用して1時間でできた。
◆目的◆
フォルダ内にCSVファイルの一覧があり、1行目が日付情報、
2行目以降が登録データになっている。
CSVファイルをサイトに取り込む際に、
1アカウント1日あたりファイルっていう縛りがあり、
日付別にCSVファイルをまとめなきゃいけなくなった。
◆手順◆
1.ダイアログを表示して解析対象のパスを取得
2.Dir関数を使ってフォルダ内のファイル一覧を取得
(今回は、VBAで作られたCSVを結合するのでShift-Jisのみ)
3.ファイルの中身を1行ずつ読み込む
4.Dictionary配列を定義し、1行目の日付をキーに2行目以降をアペンド
(キーの存在チェックしてなければキー登録、あれば値更新)
5.全ファイル繰り返し
6.キー配列を定義して、Dictionaryカウントでループ
7.キーごとに値をCSV出力(Printを使用)
◆注意点◆
Dictionary配列に改行「chr(10)」を格納しても「・」が出力されるので
一旦「"†"」で格納して、Print時に「chr(10)」へReplace
以下ソース
VBAでの処理時間の計測
2021年02月17日
会社で作っているCSV出力ツールで、
応答性を試験するために、マクロの処理時間を計測したい。
考え方としては、処理開始した時刻を変数にセットして、
処理完了時の時刻と比較する。
ただ、Nowを使うと結果が日付型で出力されて使いにくいので
Timerを使うのがお勧め。
応答性を試験するために、マクロの処理時間を計測したい。
考え方としては、処理開始した時刻を変数にセットして、
処理完了時の時刻と比較する。
ただ、Nowを使うと結果が日付型で出力されて使いにくいので
Timerを使うのがお勧め。
VBAの文字コード問題 Dir関数を使わずにFileSystemObjectを使おう
2021年02月17日
今回も会社で作っているマクロについて。
【おさらい】
今作っているのは、別のエクセルファイルからデータを読み取って、CSVに出力するツール。
エクセルファイルの中の環境依存文字がCSV化したときに「?」になっちゃうので、
Shift-Jisではなく、UTF-8でCSV出力するってのが前回のお話。
文字コード問題はそれだけじゃなかった。。。ってのが今回の内容。
【おさらい】
今作っているのは、別のエクセルファイルからデータを読み取って、CSVに出力するツール。
エクセルファイルの中の環境依存文字がCSV化したときに「?」になっちゃうので、
Shift-Jisではなく、UTF-8でCSV出力するってのが前回のお話。
文字コード問題はそれだけじゃなかった。。。ってのが今回の内容。