タグ

2017年1月10日のブックマーク (11件)

  • 月末日付を取得する - [ 日付・時刻・時間 / VBA ] |たかみんつ

  • Office TANAKA - ファイルの操作[作業用ブックを開く]

    ここでは、ユーザーに分からないようにブックを操作する方法をご紹介します。たとえば、Book1を表示している状態で、裏で開いたBook2を操作するような使い方です。 見えないように開く ブックを開くときは、WorkbooksコレクションのOpenメソッドを使います。これは、難しくないですね。 Sub Sample1() Workbooks.Open "Book2.xlsx" End Sub もちろん、ブックを開くと、開いたブックがアクティブになります。ユーザーに分からないようにブックを開くには、開いたあとで、アクティブブックを切り替えなければなりません。 Sub Sample1() Workbooks.Open "Book2.xlsx" ''別のブックをアクティブにする End Sub もし、このマクロが書かれているブックをアクティブにするのなら、ThisWorkbookをアクティブにしてや

  • Office TANAKA - Excel VBA Tips[オートフィルタ[状況の判定]]

    FilterオブジェクトのOperatorプロパティが返すのは、これら"実体"の数値です。つまり、Operatorプロパティで取得できる数値から、上記のいずれかを導かなければなりません。項の冒頭で「設定されている条件を調べるのは大変です」と書いたのは、こういう理由です。ちなみに「1列目が"田中"と等しい」のように、1つの列に1つの条件しか指定していないとき、つまり引数Operatorを指定していないときは、Operatorプロパティが0を返します。 以上をふまえた上で、少しだけ実用的なコードをご紹介します。下図は「1列目が"田中"または"広瀬"である」と「3列目が"40より大きい"かつ"80より小さい"」で絞り込んでいます。 Sub Macro7() Range("A1").AutoFilter 1, "田中", xlOr, "広瀬" Range("A1").AutoFilter 3,

  • Office TANAKA - Excel VBA Tips[Split関数で文字列を区切る]

    ※文字列を、区切り文字ではなく、位置で分割するやり方は「文字列を位置で分割する」をご覧ください。 Split関数は、ある区切り文字で区切られた文字列を、その区切り文字で区切り、区切られた各文字列を、一次元配列として返します。言葉で表すとややこしいですが、要するに次のような処理をしてくれます。 Split関数の書式は次の通りです。 Split(元の文字列 , 区切り文字) 上の例なら、次のようになります。 Split("123,田中,tanaka" , ",") Split関数は配列を返します。したがって、それを受け取る変数は、バリアント型変数か、動的配列でなければいけません。一般的にはバリアント型変数に受けます。Split関数の返り値(配列)を受け取ったバリアント型変数は、それ以降、配列として操作できます。 このとき注意しなければいけないのは、Split関数が返す配列の要素は0から始まると

  • Office TANAKA - VBAのステートメント[Const]

    Constステートメント 構文 [Public|Private]Const constname[As type]=expression キーワードPublicは省略可能です。宣言する定数をプロシージャレベルにします。 キーワードPrivateは省略可能です。宣言する定数をモジュールレベルにします。 引数constnameには、定数の名前を指定します。 As type節は省略可能です。定数の型を指定します。 引数expressionには、定数が示す値を指定します。 解説 定数を宣言します。 キーワードPublicまたはキーワードPrivateを省略した場合には、その定数はPrivateが指定されたものとみなされます。 As type節を省略すると、引数expressionで指定した値に適した型が採用されます。 引数expression内では、VisualBasicの組み込み関数を使用すること

  • Office TANAKA - Excel VBA Tips[すべて検索する]

    下図のような表があったとき、検索機能で"田中"を探してみます。 このとき、[すべて検索]ボタンをクリックすると、次のように、条件に一致したすべてのセルがリストアップされます。 このように、検索したいセルが複数存在したとき、それらをすべて検索するにはどうしたらいいでしょう。 まず、1つだけ検索する、一般的なやり方を試してみましょう。 Sub Sample1() Dim FoundCell As Range Set FoundCell = Cells.Find(What:="田中") If FoundCell Is Nothing Then MsgBox "見つかりません" Else FoundCell.Activate End If End Sub 検索の基とも言えるコードです。特に難しくはありませんね。 さて、Findメソッドには引数Afterがあります。この引数Afterに、見つかった

  • VBA セルを検索する (Range.Find)

    はじめに Excel VBA マクロでセルを検索する方法を紹介します。 Range.Find または Cells.Find メソッドから、セルを検索できます。 FindNext や FindPrevious メソッドから、続けて次のセルを検索できます。 数式や表示されている文字列、空のセルや空白が入ったセルなどを検索してセルを取得できます。 検索したセルの位置も取得できます。

    VBA セルを検索する (Range.Find)
  • Findで完全一致・部分一致を指定して検索するには:Excel VBA Rangeオブジェクト/セル検索

    対象:Excel2007, Excel2010, Excel2013, WindowsExcel2016 「excel vba find 完全一致」 「excel マクロ find 部分一致」 といった検索で、このサイト・インストラクターのネタ帳へのアクセスが時折あります。 Excel VBA(Visual Basic for Applications)の、Range.Findメソッドでセルの検索を行う際に、完全一致検索や部分一致検索を指定するにはどうすればいいのかを探している方による検索でしょうか。

  • (元)社内SEの徒然なる日記 ExcelVBAのコーディング規約を作ってみた No.4 変数

  • Worksheetオブジェクトの取得

    Worksheetオブジェクトを取得するには、Applicationオブジェクト又はWorkbookオブジェクトの「Worsheets」プロパティを使います。 Applicationオブジェクトの「Worksheets」プロパティを使った場合には現在作業しているブックに含まれるワークシートが対象となります。オブジェクトを省略した場合も同様です。Workbookオブジェクトは別のブックに含まれるワークシートを取得したい場合に使います。 「Worksheets」プロパティの引数にはインデックス番号を指定します。インデックス番号はブックに含まれるシートの中で左から順に1,2,3,...の順となっています。 上記の場合で言えばインデックス番号は「Sheet1」が1番、「Sheet2」が2番、「Sheet3」が3番となります。ワークシートの位置が変わったりワークシートが削除されたりするとそれに合わせ

    Worksheetオブジェクトの取得
  • Office TANAKA - Excel VBA Tips[最終セルの下にSUM関数を自動挿入する]

    たとえばA列に、下図のようなデータが入力されていたとします。 A列には全部で6個の数値が入力されていて、最終セルの「52」はセルA7です。このように数値が入力されている表の最終行にSUM関数を挿入してみましょう。つまり、次のような感じです。 セルに数式を挿入するだけなら簡単ですね。今回のケースなら Sub Sample1() Range("A8") = "=SUM(A2:A7)" End Sub でOKです。しかし、データが入力されている最終セル(ここではセルA7)がマクロを実行するたびに異なる場合はどうでしょう。 まず、SUM関数を挿入するセルを特定します。SUM関数を挿入するのは「最終セルの1つ下」のセルですね。データが入力されている最終セルは、Endモードで取得できます。 最終セル → Range("A2").End(xlDown) ここは、後の処理を楽にするため、あえてRange(