タグ

vbaに関するstealthinuのブックマーク (6)

  • 【VBA】テーブルのフィルターと解除【AutoFilterとShowAutoFilterを使う】

    Excel VBAで、テーブルのフィルターとフィルターを解除するには、「.AutoFilter」と「.ShowAutoFilter」を使います。「見出し」を使ってフィルターすると、列を移動しても、同じVBAコードでフィルターできるので便利です。VBAでのテーブル操作をマスターしていきましょう。

    【VBA】テーブルのフィルターと解除【AutoFilterとShowAutoFilterを使う】
    stealthinu
    stealthinu 2022/04/02
    ExcelのテーブルをVBAからautofilter設定するとき .ListColumns("名前").Index で項目名での指定ができる
  • モダンなVBAの書き方

    「糞VBAコードのメンテナンスが減りますように。なむなむ」 VBAは、非常に古い(VB6ベース)の言語なので、既存のコードは、非常に読み難い物が多いです。しかし、最近、ちょっとしたことをVBAで書いちゃうというソリューションは、案外一般的になりつつあるように思います(これ自体は悪いことではないと思う)。新しく書くVBAのコードをどう書くべきか?という自分なりの意見を纏めてみました。これは、VBAで完全なOOPをしろと言っているものではなく、単純な構造化された小さい関数を組み合わせてプログラムを書く方針(関数型言語のことではない)を勧めるものです。 変数宣言を強制する! これは、自分のため。とにかく書く。オプションで設定しておけば自動で挿入される。 変数宣言は、必要になったところで宣言する! そのコードを読む人に、いちいち、関数の先頭までスクロールさせるな。変数の有効範囲をなるべく狭くするこ

    stealthinu
    stealthinu 2014/06/11
    よりましなVBAの書き方についての指針。またVBA書かなくちゃいけなくなったときのために。
  • 第5回 WshShellオブジェクトの詳細(1)

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

    第5回 WshShellオブジェクトの詳細(1)
    stealthinu
    stealthinu 2008/05/20
    wshでexecでの実行例
  • 第5回 WshShellオブジェクトの詳細(1)

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

    第5回 WshShellオブジェクトの詳細(1)
    stealthinu
    stealthinu 2008/05/20
    runメソッドで実行するのが簡単
  • Office TANAKA - Excel VBA Tips[MS-DOSコマンドの標準出力を取得する]

    またもや「Excel VBAと関係ねぇじゃねーか!」と言われそうですが、今回はMS-DOSコマンドの標準出力を変数に取得する方法を解説します。これはもう、Excelとは関係ないVB系のネタなんですね。ただ実行環境がExcelってだけで(^^; ま、いーや書いちゃえ。MS-DOSって何のことだかわからない人は、自分で調べてください(^^; なお、ここではWindows XP Home Editionを例に解説します。 MS-DOSのコマンドには今でも便利に使えるものが多いですし、何よりネットワークを管理されている方は必須コマンドです。VBやVBAからMS-DOSコマンドを実行するときには、問題が2つあります。1つめはShell関数で起動できないことです。MS-DOSコマンドはいわゆるDOS窓で起動する仕組みになっていますので、Shell関数では起動できません。2つめの問題は、実行結果もDOS

    stealthinu
    stealthinu 2008/05/20
    wsh作ってそこで実行
  • EXCELのVBAで

    >また、文字の前後についている、"(ダブルコーテーション)を外して、 以下のコードでは、ダブルコーテーションが必要な場所には付与されますが、それはCSVを正しく出力するために必要があるからです。例えば、改行コードを含むデータをCSV出力すると、このダブルコーテーションが無いとうまく出力されません。 コードですが、勿論 Open で開いて一行ずつ処理していってもOKなのですが、EXCELにはCSV出力機能があるのだから、これを利用しました。コードが単純化されます。 また、処理件数が多い場合、VBAで自力でゴリゴリやるよりは、コンパイルされたEXCELの機能を利用する方が高速です。 Sub EXPORT_CSV() Dim TargetArea As Range Dim WB As Workbook '対象範囲を定義 Set TargetArea = Sheets("Sheet1").Rang

    EXCELのVBAで
    stealthinu
    stealthinu 2008/05/20
    なるほどな。一度ダミー用のworkbook作って、そっちにコピーしてcsv吐き出すとファイル名変わらないですむのか。参考になった。
  • 1