vbaの4桁右ゼロ詰めは、Format(key1,"0000") EXCELシートのAnセルの内容を4桁左(前方)ゼロ詰めする場合、=TEXT(An,"0000")の関数を埋め込む。 vbaの40桁右(後方)半角空白詰めは、Left(key2 & String(40," "),40)
2022年7月22日金曜日
2022年7月14日木曜日
vbaで最大行を求めるにはxldownよりもxlupを使うのが良さそうだ。これをVBA SNIPPETSにする。
Cells(1, 1).End(xlDown).Rowではなく、Cells(Rows.Count, 1).End(xlUp).Rowの方が良さそうだ。
'Snippets for VBA 'Get maxRow and maxClm Dim maxRow As Long maxRow = Cells(Rows.Count, 1).End(xlUp).Row 'the last Row of column A maxClm = Cells(1, Columns.Count).End(xlToLeft).Column 'max Column of row 1
2022年7月6日水曜日
mk editorはEUCかシフトJISか判定できない時に「ShiftJISまたはEUCで文字列を識別できませんでした。EUCとして開いて問いでしょうか?[はい]EUCとして開く[いいえ]ShiftJISで開くというメッセージを出す。
mk editorはEUCかシフトJISか判定できない時に「ShiftJISまたはEUCで文字列を識別できませんでした。EUCとして開いてよいでしょうか?[はい]EUCとして開く[いいえ]ShiftJISで開くというメッセージを出す。
2022年6月21日火曜日
accessでexcelを取り込む際に1行目(タイトル行)が破壊されてもインポートできるようにするまでの物語
accessのテーブルにexcelを取り込むのに、1行目(タイトル行)が破壊されてもインポートできるようにするため、2行目からインポートする。 すると、取り込み先のテーブルが新規テーブルであれば、自動的にテーブルのフィールド名がF1,F2,F3・・・・となる。 取り込み先のテーブルが新規テーブルではなく、既存テーブルの場合、テーブルのフィールド名がF1,F2,F3・・・・となっていなけレバならない。 そうでない場合には、F1フィールドがありませんというエラーメッセージでインポートが失敗する。 そこで、既存テーブルがある場合には、いったん、削除しておくという奥の手を使うこともできる。
Docmd.DeleteObject acTable,"table1"そして、フィールド名がF1,F2,F3・・・・のままでは、具合が悪い(使い勝手が悪い)ので、 以下のvbaコードでフィールド名を自分の好きな名前に一括変更してみた。これで、うまく行くことを祈る。
Sub FieldNameChange()
Dim dbs As Database
Set dbs = CurrentDb
With dbs.TableDefs("table1")
.Fields("F1").Name = "番号"
.Fields("F2").Name = "名前"
.Fields("F3").Name = "年齢"
(繰返し)
.Fields.Refresh
End With
End Sub
2022年6月13日月曜日
vbaでのテキストフィルターのワイルドカードについての考察
vbaの.autoFilterでテキストフィルタをかける場合、ワイルドカードの指定をすることが多々ある。後方一致としての○○*とするのは、問題ないが、前方一致の*○○が問題である。 *○○とは、○○が1文字目からとなっているものが抽出できないようだ。2文字目から〇〇となっているものならば、抽出できる。つまり、1文字目に何かの文字がないと、検出できない。仕様通りといえば、そうかもだが・・・
2022年6月11日土曜日
Visual Studio Codeでテキスト文書をわざわざマークダウン(markdown)記法で書く理由
Visual Studio Codeでテキスト文書をマークダウン(markdown)記法で書いて、プラグインでpdfとして表示(ただし、visual studio codeにmarkdownと認識させるため、ファイル拡張子を.mdにする必要がある)してみた。 ところが、字下げ(インデント)ができないことが判明した。それは、日本語の仕様書として、具合が悪いと思った。 でも、 で半角空白になることがわかり、プラグインモジュールでPDF出力しても有効だったのだ。 何故、pdfにするのに、わざわざテキスト文書をmarkdown記法で書くのか?wordかexcelで文書を作り、PDFにすれば良いのでは?と思われる方も多いことだろう。 その理由は、テキスト文書をmarkdown記法で書くだけで、字を大きくしたり、太くしたりといった編集作業をせずに、マークダウン記法による簡単なルールで、そこそこのワンパターンだが、それなりのPDFが出来てしまうからだ。一応、仕様書としての体裁を整えるに実に都合が良いのである。しかも、テキスト文書を作りながら、プレビューで出来栄えを確認できるので、これまた、都合がよろしいのだ。
2022年6月7日火曜日
vbaでpdf出力したら、保存できませんでしたと怒られたのは、指定したフォルダ名が間違えていたためと気がつくまでの物語
vbaでpdf出力したら、保存できませんでしたと怒られた.
その原因は、pdf出力先のフォルダを作成していなかったため(正確に言えば、フォルダ名を間違えていたため)だが、「ファイルが保存できませんでした」という不親切なメッセージでは気がつくのに物凄く時間がかかったのだった。
でも一番悪いのは、自分。もっと足元を見ろということですね。間違えているのは、自分だよってことだね。
Dim file1 as string
Dim filePath as string
' C:¥Users¥user1¥documents¥pdf¥output
filePath = Thisworkbook.Worksheets("menu").Range("B5").Value
file1 = filePath & test.pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=file1