EOFとは、最終レコードよりも後ろに移動しようとするとTRUEになるプロパティです。全レコードを参照するには、Do~LoopでEOFがTRUEになるまで、レコードを前に移動します。 レコードの移動方法は「Recordsetでレコード移動させる 」のページを参照してください。 RecordsetとEOFで全レコードを参照するVBA 下のMyEofプロシージャを作成しました。 実行すると、顧客マスターテーブルをRecordsetで開き、全レコードの会社名とTELをイミディエイトウィンドウに表示します。 ・ Do Until rs.EOF でレコードの最後までループします。 ・ rs.MoveNext で次のレコードに移動します。 Sub MyEof() Dim db As Database Dim rs As Recordset Dim i As Long Set db = CurrentDb
VBAからクエリを実行する方法は、いくつかありますが、ここではDoCmd.OpenQueryを説明します。 ナビゲーションウィンドウ(2003以前はデータベースウィンドウ)から、クエリをダブルクリックしたときと同じ動作をさせる場合は、DoCmd.OpenQueryを使用します。 ・構文 DoCmd.OpenQuery QueryName , View , DataMode ・引数 QueryName ・ 開く(実行する)クエリの名前を文字列で指定します。必須。 View ・ クエリをどのビューで開くか、下記のAcViewクラス定数で指定します。省略可。 名前 値 説明 acViewDesign 1 デザイン ビュー acViewLayout 6 レイアウト ビュー acViewNormal 0 (既定値) 標準表示 acViewPivotChart 4 ピボットグラフ ビュー acView
追加クエリ・更新クエリ・削除クエリといったアクションクエリをVBAから実行するには、主に次のようなケースによって処理方法を使い分けます。 アクションクエリが”クエリ”としてデータベースに保存されている場合 SQL文をVBAで動的に組み立てて処理する場合 ■DoCmdオブジェクトのOpenQueryメソッドを使った方法 ※この方法は、アクションクエリが”クエリ”としてデータベースに保存されている場合に使います。 ※SetWarningsをFalseとすることで、アクションクエリ実行前の確認メッセージを表示させずに、そのまま即実行させることができます。 ■SQL文で指定する場合(Databaseオブジェクトの「Execute」メソッドを使用) Dim dbs As Database Dim strRate As String Dim strSQL As String Beep strRate
Option Compare ステートメントでは、モジュール内で文字列を比較する方法を決定します。Option Compare には次の 3 種類の設定があります。 Option Compare Binary 文字列比較は大文字と小文字を区別して行われます。Microsoft Access 以外の Microsoft Office アプリケーションにおける既定の設定です。Access における既定の設定は Option Compare Database です。 Option Compare Text 文字列比較に大文字と小文字の区別はありません。この設定をモジュールの既定にするには、このステートメントをモジュールの宣言セクションに追加します。 Option Compare Database 文字列比較は、指定されたロケールの並び順序によって実行されます。既定では大文字と小文字を区別しません
サイトをご覧になった方からリクエストをいただきました。「特定のブックを開いているか、どうやってチェックしたらいいですか?」と。また、別の方から「'合計'という名前のシートがあるかどうか調べたい」というメールもちょうだいしました。これらは同じ考え方で実現できますので、一緒に解説しましょう。 ブックが開いているか調べる このテクニックは、実は「ファイルの操作」の「現在開いているブックの一覧を取得する」で解説しています。念のため同じコードを再度ご紹介します。 Sub Sample01() Dim wb As Workbook, flag As Boolean For Each wb In Workbooks If wb.Name = "Book1.xlsx" Then flag = True Next wb If flag = True Then MsgBox "Book1 を開いています。",
列を挿入する 複数列を挿入する 別シートの列に挿入する 列を挿入する Columns の引数に列番号または列名を指定すると、その列に挿入できます。 列「A」に挿入するには Columns(1).Insert または Columns("A").Insert を入力します。 Columns(1).Insert ' A 列に挿入 Columns("A").Insert ' A 列に挿入 ' Columns(3).Insert ' C 列に挿入 Range の引数にセル名を指定すると、そのセルを取得できます。EntireColumn からその列を取得できます。 セル「B2」の列に挿入するには Range("B2").EntireColumn.Insert を入力します。
Copy メソッドではコピーしたシートを指定したシートの前、あるいは後ろに挿入するかを引数で指定します。 引数のシートを指定するときは Before や After の後にコロンとイコール := をつけて指定します。この := は、引数の順序に関係なく、特定の引数へ値を設定するときに用います。また、Before と After を同時に使用することはできません。 もし引数に何も指定しなかった場合は、新規のブックにコピーされます。 以下は、Sheet1 を Sheet2 の後の位置にコピーする例です。
ファイルをコピーする(FileCopyステートメント) (Excel 97/2000/2002/2003/2007/2010/2013/2016) ツイート ファイルをコピーするには、FileCopyステートメントを使います。 ▼FileCopyステートメントの構文 FileCopy コピー元, コピー先 次のコードは「C:\Tmp\Test.txt」を「C:\Work」フォルダにコピーします。 Sub Sample1() FileCopy "C:\Tmp\Test.txt", "C:\Work\Test.txt" End Sub 「コピー先」にはフォルダ名ではなく、ファイル名を指定する点に留意してください。 次のようにするとエラーになります。 FileCopy "C:\Tmp\Test.txt", "C:\Work\" ■テンプレートをもとにファイルを複製する「コピー先」にはファイル名を
「ァィゥェォャュョ」などの拗促音を通常の文字「アイウエオヤユヨ」に変換する例です。 次のサンプルFunctionプロシージャを使うと、引数strKanaの文字列内に含まれる拗促音が変換されて返されます。 ここでは、いったん引数を半角カナに変換して、1文字1バイトの状態にします。そして、それぞれの文字のASCIIコードをAsc関数で順番に調べ、拗促音の範囲の値であれば対応する文字へとChr関数で変換しています。 Function ConvStrTest(strKana As String) As String Dim intAscCode As Integer Dim iintLoop As Integer '全角カナを半角カナに変換 strKana = StrConv(strKana, vbNarrow) '拗促音を変換 For iintLoop = 1 To Len(strKana) i
アメリカ生まれのExcelにはこういったワークシート関数は用意されていないようなので、VBA(Visual Basic for Applications)でユーザー定義関数を作ってみてはいかがでしょう。 ▼拗音・促音を大きなかな文字にするユーザー定義関数 Function UpperSutegana(strOrg As String) As String Const cstLower = "ぁぃぅぇぉっゃゅょゎァィゥェォッャュョヮ" Const cstUpper = "あいうえおつやゆよわアイウエオツヤユヨワ" Dim strRet As String Dim intLoop As Integer Dim strChar As String Dim intChar As Integer strRet = "" For intLoop = 1 To Len(strOrg) strChar =
業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、文字列の変換が行えるStrConvメソッドを使い、ひらがなをカタカナに変換するマクロや半角英語を全角英語に変換するマクロの作り方を解説。 今回は、文字の変換に関するTipsを紹介しよう。「ひらがな」を「カタカナ」に変換する必要性は、日常の業務においても出てくると思う。例えば、最初は「氏名」の読みを「カタカナ」で会員登録をしていたが、途中で「ひらがな」登録に変更したい場合などは、このマクロを使えば一括で変換できる。 また今回は、「半角」文字を「全角」文字に変換する方法も紹介する。メインフレーム時代の古いデータでは「半角カタカナ」が使われていたので、いまだにそのデータを扱わなければならず、「全角カタカナ」に変換したい場合もあるだろう。もしくは、データ入力時に間違って「半角数字」で入力するべきところを
文字列の連結、分割、抽出など、文字列操作って使うことがよくありますよね? VBAでも様々な関数が用意されています。 この記事では、文字列の操作に関して
定数vbWideと定数vbNarrowは、国別情報が中国、韓国、日本の場合に適用されます。引数vbKatakanaと引数vbHiraganaは、国別情報が日本の場合に適用されます。 引数 string を指定したあとで、カンマ(,)を入力すると、次の引数 conversion で指定できる定数がリストに表示されます。 サンプル 次の例は、文字列を変換した結果を表示します。 Sub Sample() Dim str As String str = "abcDEFGHI" MsgBox StrConv(str, vbUpperCase) 'ABCDEFGHIを表示します MsgBox StrConv(str, vbLowerCase) 'abcdefghiを表示します MsgBox StrConv(str, vbProperCase) 'Abcdefghiを表示します MsgBox StrCo
戻り値は Shift_JIS の文字コードです。 引数「文字列」の 1 文字目の文字コードを返します。 引数「文字列」が半角のときは 0 ~ 255 の範囲を返します。ASCII コードと同じ値です。全角のときは -32768 ~ 32767 の範囲を返します。 Shift_JIS に存在しない文字の文字コードは ? の 63 を返します。これを利用して、その文字が Shift_JIS の文字か Unicode 文字かを判定できます。 引数「文字列」が空文字の時は「エラー 5 プロシージャの呼び出し、または引数が不正です。」が発生します。 取得した文字コードを文字に変換するには「Chr 関数」を使用します。 AscW 関数 戻り値は Unicode (UTF-16) の文字コードです。Long 型で取得するには CUInt 関数を作成します。 引数「文字列」の 1 文字目の文字コードを返し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く