タグ

TipsとVBAに関するnekorockのブックマーク (34)

  • accessclub.jp - このウェブサイトは販売用です! - アクセスクラブ リソースおよび情報

  • [ファイルを開く] ダイアログを表示する方法

    概要 今回は、Access 2000 以降で [ファイルを開く] ダイアログを表示する方法です。 .....あっ、今アナタ、こう思いましたね? [ファイルを開く] ダイアログ? FAQ だね、FAQ。 Access 2000 には [ファイルを開く] ダイアログを表示する機能は無いんだから。 アレでしょ、Developer 版に付属しているコモンダイアログ コントロールを使うか、Excel 経由で GetOpenFileName メソッドを呼び出すか、さもなくば Windows API を使うっていう。 あ、それとも Access 2002 から追加された新機能の FileDialog メソッドを使う方法かな? でもそれだと Access 2000 では使えないから、やっぱり最初の 3 つの方法でしょ。 そんなの他のサイトにもたくさん載ってるし、毎週どこかの掲示板に上がってくる定番ネタじゃ

  • accessclub.biz - このウェブサイトは販売用です! - accessclub リソースおよび情報

  • Access VBA:TransferTextを使用せずにVBAでCSVなどの区切り記号つきテキストファイルを既存のテーブルにインポートするサンプルプログラム

    AccessのVBACSVファイルなどの区切り記号付きテキストファイルをインポートするサンプルプログラムを覚書。 [ファイルを開く]ダイアログボックスの表示と組み合わせたサンプルプログラムも作成しておいた。 AccessでCSVファイルなどの区切り記号付きテキストファイルをインポートするには、通常"TransferText"を使用する。 しかし、TransferTextでは、一括してデータを読み込むため個々のデータをインポート時に加工したりデータ型を変換するなどの細かい処理を指定できない。 インポート時の定義を作成し、定義を指定することである程度はカバーできるが、インポートするデータに何かしらの加工処理を実行した結果を保存する場合には役に立たない。 以下に、VBAの標準I/Oである"Line Input #"ステートメントを使用して区切り記号付きテキストファイルを読み込んでテーブルにレコ

    Access VBA:TransferTextを使用せずにVBAでCSVなどの区切り記号つきテキストファイルを既存のテーブルにインポートするサンプルプログラム
  • 外部テキストファイルとの接続方法

    Shell 関数 機能 外部テキストファイルを開くだけで何も操作をしなくてよい場合は、もっとも簡単なのがこの Shell 関数です。 Call Shell("NOTEPAD C:\Temp.txt", 1) Shell 関数自体は別にテキストファイルを操作するための関数ではなく、単にアプリケーションを呼び出すだけで、呼び出し先はメモ帳でも秀〇でも Excel でも何でもかまいません。上記例ではコマンドライン オプションでテキストファイルのフルパスを渡すことによって、メモ帳に起動と同時にテキストファイルを開かせています。 なおテキストファイルのフルパス中に半角スペース文字が混じる場合は、下記のようにパスをさらに二重のダブル クォーテーションで括る必要があります。 Call Shell("NOTEPAD ""C:\Documents and Settings\YU-TANG\デスクトップ\Te

  • インデントの設定

    設定する値はインデントする文字数です。1文字と指定した場合には全角1文字に相当します。 注意する点としては、「IndentLevel」プロパティを設定すると、「HorizontalAlignment」プロパティが「xlLeft」に自動的に変更されてしまいます。その為、右詰めや均等割り付けでインデントを設定する場合には、まず「IndentLevel」プロパティを設定してからその後で「HorizontalAlignment」プロパティを設定して下さい。 サンプルプログラム では簡単なサンプルで試してみましょう。 Sub テスト() Range("A1:B3").Value = "日語" Range("A1:A3").IndentLevel = 1 Range("B1:B3").IndentLevel = 3 Range("A1:B1").HorizontalAlignment = xlLef

    インデントの設定
    nekorock
    nekorock 2009/06/26
    セルのインデントをVBAで設定する方法。
  • 7.マクロのパスワードを忘れたとき

    クレジットカード現金化の高還元率の優良店を選ぶためには クレジットカード現金化の優良店を選ぶポイントは、換金率やスピードもありますが、そのほかにも見ておきたいポイントもあります。 お金に厳しい人が利用しますので、手数料やキャンペーンの有無、価格交渉ができる業者ということは見ておきたいところです。 それぞれどのような内容なのでしょうか。 手数料が無料であるクレジットカード現金化の業者には、手数料をすべて無料でしてくれるところがあります。 業者によっては、単純に手数料という名目で業者側の利益がとられていたり、振込手数料、事務手数料という名目で少額ながらお金がかかることがあります。 せっかく高い換金率が記載されていても、手数料の分が差し引かれることで、損をしたような気持ちになったり後から気づくこともあります。 これらの手数料は最初から公式ホームページに記載がある場合は了承したうえで申し込みもでき

  • If OpenFileName <> "False"とIf OpenFileName <> Falseの違い

    開くブックをユーザーに選択してもらう場合は、[ファイルを開く]ダイアログボックスを表示するといいでしょう。 Sub Sample1() Dim OpenFileName As String OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls?") Workbooks.Open OpenFileName End Sub [ファイルを開く]ダイアログボックスを表示するには、ApplicationオブジェクトのGetOpenFilenameメソッドを使います。GetOpenFilenameメソッドによる[ファイルを開く]ダイアログボックスは、ユーザーが選択したファイルのフルパスを返すだけで、自動的には開きません。GetOpenFilenameメソッドの書式は次の通りです。 GetOpenFilename Fil

  • オートフィルタ(AutoFilter)でのデータ抽出:Excel VBA入門

    オートフィルタ(AutoFilterメソッド)でのデータ抽出   Topへ データリストから必要なデータを表示し、他のデータは非表示にします。 expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown) Field 必ず指定します。フィルタの対象となるフィールド番号を整数で指定します。 フィールド番号は、リストの左端列が「1」となります。 Criteria1 省略可能。抽出条件となる文字列 ("101" など) を指定します。 "=" と指定すると、空白セルが抽出されます。 "<>" と指定すると空白以外のフィールドが抽出されます。 この引数を省略すると、抽出条件はALLになります。 引数OperatorにxlTop10Itemsが指定されている場合は、引数Criteria1に項目数を指定します

    nekorock
    nekorock 2009/03/29
    オートフィルタの解除方法についても記載あり。フィルタ結果に対して計算を行う場合はSUM等ではなくSUBTOTAL関数を使う。
  • オートフィルタの設定/解除: .xls

    'オートフィルタモードになっているかどうか調べ、 'ONならOFF、OFFならONにする If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False 'オートフィルタを解除する Else ActiveSheet.Range("A1").AutoFilter 'A1セルを含む表をオートフィルタ設定する End If 'オートフィルタでフィルタされていれば解除して全ての行を表示させる If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData End If ※If文を使わずにフィルタされていないシートに対して実行すると、 実行時エラー'1004': WorksheetクラスのShowAllDataメソッドが失敗しました。 というエラーがでます。

  • Excel VBA を学ぶなら moug モーグ|

  • No.8 ワークシートの最終行、最終列を取得する

    ワークシートの最終セル(最終行、最終列)を取得する… VBAをはじめた人は誰しも最初に引っかかる問題ではありますが、幸いにもインターネットで検索するといくつもの解決法が見つかります。 ところが…動いたり動かなかったり、想定外の動作をすることがあります。そもそもいくつもの解決法があること自体おかしい、いったい当の答えはどれ?この際、白黒はっきりさせようじゃないかというのがこのページの趣旨です。 <S1> ワークシートの最大行、最大列を取得する MaxRow = Rows.Count MaxCol = Columns.Count まず基からですが、ワークシートの最大行、最大列を取得するコードです。もちろんこれ自体は最終行、最終列を取得するものではありません。 Rowsはワークシートの行全体をあらわすオブジェクトで、Columnsは列全体をあらわすオブジェクトです。そのメソッドCountは数

  • クレジットカード現金化の高還元率の優良店を選ぶためには

    クレジットカード現金化の高還元率の優良店を選ぶためには クレジットカード現金化の優良店を選ぶポイントは、換金率やスピードもありますが、そのほかにも見ておきたいポイントもあります。 お金に厳しい人が利用しますので、手数料やキャンペーンの有無、価格交渉ができる業者ということは見ておきたいところです。 それぞれどのような内容なのでしょうか。 手数料が無料であるクレジットカード現金化の業者には、手数料をすべて無料でしてくれるところがあります。 業者によっては、単純に手数料という名目で業者側の利益がとられていたり、振込手数料、事務手数料という名目で少額ながらお金がかかることがあります。 せっかく高い換金率が記載されていても、手数料の分が差し引かれることで、損をしたような気持ちになったり後から気づくこともあります。 これらの手数料は最初から公式ホームページに記載がある場合は了承したうえで申し込みもでき

  • VBAで正規表現を使う

    はじめに 改めて言うまでもないことですが、文字列処理で正規表現が使えると非常に便利です。VBAで正規表現を利用する方法を紹介したいと思います。 対象読者 VBAで正規表現を使用したい方 VBAで煩雑な文字列処理の行う必要のある方 なお、「正規表現についてよくわからない」という方は、以下のページの解説などを参考にしてください。 サルにもわかる正規表現入門 必要な環境 Windows VistaまたはWindows XP VBA開発環境 正規表現を使う前に VBAで文字列比較を行う場合、標準の機能としてStrComp関数やLike演算子があります。 特にLike演算子は、ワイルドカードなどによるパターンマッチングが行えます。正規表現よりも柔軟性は劣りますが、実現したい機能がLike演算子で済むのならば、無理に正規表現は使わずLike演算子を使った方がよいと思います。詳しくは、ヘルプにあるLik

    VBAで正規表現を使う
  • 作業を効率化させるExcel VBA Tips集 ファイルから特定の文字列を検索し、検索件数を返す。

    作業を楽にする為の苦労を惜しまない、末転倒なプログラマーが実際に業務で使ったExcel VBAのサンプルを公開しています。掲載しているサンプルは関数単位ですので、使い捨てしやすいと思います。 ソースファイルなどから、特定の文字列を検索するだけなら、秀丸等のテキストエディタでGrepをかけることをオススメする。 そっちの方が速いから。 どうしてもExcel VBAでファイルをオープンして検索したいという奇特な方はこのまま読み進めていただきたい。とは言え、Excel VBAでGrepのような処理を行うには、次のようなメリットがある。 ・ExcelシートにGrep結果を表示できる。 ・複数の検索文字列を一括して処理できる。 など。 たぶん、テクニックを使えば、秀丸マクロでも同じことできそうだけど、VBAで扱うことの最大のメリットは検索結果をVBAで直接触れるってことかな。 以下のサンプル1では

    nekorock
    nekorock 2009/03/21
    Excelでgrepのようなことをする方法。
  • Office TANAKA

  • 文字列を分割し1次元配列として返す(Split関数):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    次のサンプルを見てください。 複数のセル範囲のアドレスを取得すると、それぞれのアドレスがカンマ(,)で区切られることを利用して、個々のアドレスを配列に格納しています。 ●サンプル● Sub SplitSamp1() Dim myAddress As String Dim myArray() As String Dim i As Long Dim myMsg As String '---複数のセル範囲のアドレスを取得 myAddress = Application.InputBox( _ Prompt:="複数範囲を選択してください" & vbCr & _ "( [Ctrl]キー + 範囲選択 )" _ , Type:=8).Address Range(myAddress).Select '---個々のアドレスを「,」で区切って配列に代入 myArray = Split(myAddress,

  • Office TANAKA - VBA高速化テクニック[配列を使う]

    パソコン通信時代に書いた、この「VBA高速化テクニック」の中で、間違って伝わっているな~と感じていたのは、冒頭の「画面を止める」と、これ「配列を使う」です。90年代のパソコンはスペックが低かったです。CPUは遅いし、メモリも少なく低速、Windowsの画面描画機能も遅かったし、そもそもExcelもそれほど速くはなかったです。そんな中で、大量のセルにアクセスするのなら、一度配列に入れて配列を操作する方が速いよって話でした。でも、何となく「配列に入れると速い」ということだけが一人歩きして、とにかく何でも「配列は速い!配列は速い!配列!配列ぅ!」って言われてます。 ちょっとやってみましょうか。まずは単純に、データを探す操作から。A列に200,000個の名前が入っています。この中から"田中"を探して、該当するB列の数値を取得します。ちなみに"田中"は一番下のセルA200000にあります。 Sub

  • 第5回 WshShellオブジェクトの詳細(1)

    FCのようなコマンドライン・ツールを実行する場合には、Execメソッドを利用する方法もある。Execメソッドも、パラメータとして実行するプログラムを指定する点ではRunメソッドと違いはない。しかし前述したとおり、Execメソッドを利用すれば、終了コードの取得だけでなく、標準入出力を通してコマンドにオプションを与えたり、コマンド実行の結果を取得したりできるようになる。 またExecメソッドは、戻り値としてWshScriptExecオブジェクトを返す。前述したクラス構成図から分かるとおり、WshScriptExecオブジェクトにはStatus、StdIn、StdOut、StdErr、ExitCode、ProcessIDの6つのプロパティがある。

    第5回 WshShellオブジェクトの詳細(1)
  • 第5回 WshShellオブジェクトの詳細(1)

    それでは、WshShellのメソッドやプロパティについて詳しく見ていくことにしよう。まずはRunメソッドとExecメソッドである。これら2つは、プログラムを起動するためのメソッドである。 RunメソッドとExecメソッド Office製品やInternet Explorerなど、COMオブジェクトとして提供されているものは、WScriptオブジェクトのCreateObjectメソッドやGetObjectメソッドを利用してオブジェクトを生成し、生成したオブジェクトを直接操作した方がきめ細かい処理が行えるが、この方法はCOMオブジェクトが提供されないプログラムでは使えない。Windows標準のテキスト・エディタであるメモ帳や、比較的小規模のプログラムでは、COMオブジェクトとしてのアクセス方法が提供されていない場合が多い。これに対しRunメソッドやExecメソッドでは、実行形式のファイルさえあ

    第5回 WshShellオブジェクトの詳細(1)