タグ

VBAとExcelに関するNSTanechanのブックマーク (27)

  • エクセル「Formula,Value」メモ(Hishidama's Excel Memo "Formula/Value")

    Excelでは、セルを指定する方法に、A1方式とR1C1方式という2種類あります。 A1方式はおなじみで、Range("A1")というように使い、A1セルを直接指定します。 これに対しR1C1方式は、自分のセルからの相対位置を「ROW方向にいくつCOL方向にいくつで表す」 という指定の仕方をします。 Range("A2").FormulaR1C1 = "=R[-1]C[0]" Range("B2").Formula = "=B1" Range("C2").Value = "=C1" いずれも、自分自身のセルの1つ上のセルの値を参照する式です。 値の設定時では、FormulaR1C1方式にはR1C1方式でなければならない以外は、 いずれの方式を使っても自動的に判別してくれるようです。 Sub Macro2() Range("A4").Value = "a" Range("B4").Value

  • 『PivotCaches.Add メソッドについて調べてみる - Excelマクロ・VBA』

  • VBA入門者の”どっち?” Cells or Range-Cellsでしかできないこと:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    HOME > 即効テクニック > Excel VBA > その他関連のテクニック > VBA入門者の”どっち?” Cells or Range-Cellsでしかできないこと ツイート ■Cellsでしかできないこと■ 行列ともに変数を指定してセルを取得する 特定のセル範囲内で相対指定でセルを取得する シート全体、あるいは特定のセル範囲全体をあらわす ○1.行列ともに変数を指定してセルを取得する○ Cellsプロパティでは・・・ Cells(行インデックス、列インデックス) というように、行列ともに数値指定できるためループ構造の中で行、あるいは列、 またあるいはその両方が変動する場合などにCellsが威力を発揮します。 下記の例ではセルA1からE10までの各セルにセルのアドレスを書き込みます。 Dim i As Integer, j As Integer For i = 1 To 10 Fo

  • VBA基本(これが解ると、他シートや他ブックの参照もできる。)

    個々の記述はマクロの記録でよく出てきますね。 「オブジェクト」「メソッド」「プロパティ」などというと何やら難しいことを覚えなければならないのか、と構えてしまうかも知れません。 ですが、これらはマクロの記録で記録されるコードに既に頻繁に使われているもので、知らずに使っているのです。記録されたままで済んでいるならそれでも良いかも知れませんが、 コードに手を入れるようなことがあるなら、ある程度は頭にいれておいた方が良いと思います。 Excelの場合「オブジェクト」は、Excel自身や、ワークブック、ワークシート、セルやセル範囲、さらには貼り付けたテキストボックスや画像など、単純な変数以外の全てに近いものを指します。「オブジェクト」は広義であって、実際に使用する場合は「オブジェクト」の中の「何」かを明示して宣言します。 オブジェクト型変数 古い話ですが、Excel95までは、これらは「Object

  • VBAで長いコードを途中で改行する

    VBA のコードを記述する場合、コードは改行までが一つの処理として扱われます。コードの途中で単に改行してしまうとエラーとなってしまいますが、アンダーバーを使ってコードが次の行へ続いていることを表すことができます。ここでは VBA でコードを途中で改行する方法について解説します。 ※ セルに入力した文字列を途中で改行したり、メッセージボックスで表示される文字列を途中で改行する方法については「VBAで改行する」を参照されてください。

    VBAで長いコードを途中で改行する
  • 計算式(A1参照形式とR1C1参照形式の表記の違い。)

    列の見出し表示が「A,B,C」ではなく「数字」になってしまった! などと、Excelが壊れてしまったように問い合わせてくる方が時々いますが、A1参照形式(列をA,B,C・・・で表記する通常の形式)は、Excelのデフォルトであり、ほとんどの人がこの形式で計算式などを作っていると思いますから不思議なことではありません。 でも、皆さんにはもっとExcelを知って使いこなしていただきたいので、最初のうちに「絶対参照」と「R1C1参照形式」について説明することにしました。 「R1C1参照形式」は一般的なものではありません。 当サイトでは、計算式やVBAを作成・開発する側の方への説明として、「R1C1参照形式」を結構多用し、半ばお勧めしています。 ですが、Excelでは「A1参照形式」がデフォルトであり、一般ユーザーでは「R1C1参照形式」そのものを知らないケースも非常に多く見られます。 このことか

  • Office TANAKA - Excel VBA Tips[ダブルコーテーションの表示]

    画面にメッセージを表示するにはMsgBoxを使います。次のコードは「tanaka」という文字列を表示します。 Sub Sample() MsgBox "tanaka" End Sub このように、VBAでは文字列をダブルコーテーション(")で囲むのが基ルールです。「MsgBox tanaka」では、tanakaという変数名を指定したことになってしまいます。特別な記号であるダブルコーテーション(")ですが、ではダブルコーテーション(")自体を文字列として表示するにはどうしたらいいでしょう。 たとえば、次のようにするとダブルコーテーション(")を表示できます。 Sub Sample() MsgBox """tanaka""" End Sub あるいは、次のように書いても同じ結果になります。 Sub Sample() MsgBox """" & "tanaka" & """" End Sub

    Office TANAKA - Excel VBA Tips[ダブルコーテーションの表示]
  • Office TANAKA - Excel VBA Tips[VBAでファイルの操作]

    FileSystemObjectオブジェクトを使うと、さまざまなファイル操作が可能になります。FileSystemObjectオブジェクトに関しては「FileSystemObjectオブジェクト」をご覧ください。 また、VBAにはファイルを操作するいくつかのコマンドが標準で用意されていますので、ちょっとした操作ならCreateObjectを使うまでもなく、それら標準のコマンドで済むケースもあります。ここでは、VBAコマンドを使った、次の操作について解説します。 ファイルをコピーする ファイルの名前を変更する ファイルを削除する カレントドライブとカレントフォルダについて フォルダの操作 ファイル操作のサンプル ファイルをコピーする ファイルをコピーするには、FileCopyステートメントを実行します。FileCopyステートメントの構文は次の通りです。 FileCopy source, d

    Office TANAKA - Excel VBA Tips[VBAでファイルの操作]
  • クレジットカード現金化の高還元率の優良店を選ぶためには

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

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

    ブックを開くには、WorkbooksコレクションのOpenメソッドを使います。 Excelでは、同時に複数のブックを開くことができます。開いているそれぞれのブックはWorkbookオブジェクトとして操作できます。このWorkbookオブジェクトの集合体がWorkbooksコレクションです。新しいブックを開くということは、この集合体に、新しいメンバーを加えるということです。だからWorkbooksコレクションのOpenメソッドです。 次のコードは、C:\Book1.xlsxを開きます。 Sub Sample1 Workbooks.Open "C:\Book1.xlsx" End Sub Workbooks.Open Filename:="C:\Book1.xlsx" という書き方もできます。 「Filename:=」の意味や、つけるのとつけないのとでは何が違うかについては、下記ページを参考に

  • Office TANAKA - シートの操作[新しいシートを挿入する]

    シートの挿入はAddメソッド ワークシートを挿入するときは、WorksheetsコレクションのAddメソッドを実行します。次のコードは新しいワークシートを1枚挿入します。 Sub Sample03() Worksheets.Add End Sub Addメソッドの構文は次の通りです。 Worksheets.Add(Before, After, Count, Type) 引数Beforeに"Sheet2"を指定すると、新しいシートは[Sheet2]の手前(Before)に挿入されます。逆に、指定したシートの後ろ(After)に挿入したいときは、引数Afterにシート名を指定します。引数Beforeと引数Afterは、どちらか一方だけを指定します。もし両方指定した場合、その位置が矛盾しているとAddメソッドはエラーになります。まぁ、普通は両方同時に指定しませんけどね(^^; 引数Countは挿

  • Office TANAKA - シートの操作[コピー/移動する]

    シートのコピーはCopyメソッド シートをコピーするときはCopyメソッドを使います。ここでは「○○は××メソッドです」と簡単に説明していますが、使用するメソッドやプロパティがわからないときは、まず実際の操作をマクロ記録してくださいね。 さて、WorksheetオブジェクトのCopyメソッドには次の引数があります。 Copy(Before, After) 引数Beforeと引数Afterは、それぞれコピー先の位置を指定します。「Before:=Worksheets("Sheet2")」なら、コピーされた新しいシートがSheet2の直前に挿入されます。Addメソッドとよく似ていますが、1つだけ注意が必要です。Addメソッドと違い、引数Beforeと引数Afterを同時に指定することはできません。たとえ両方で矛盾のない位置を指定してもいけません。 Copyメソッドは異なるブックに存在するシート

  • VBA基本(Functionプロシージャ)

    ここまで「VBA」では、「Subプロシージャ」だけにしか触れていませんでしたが、もう一つ「Functionプロシージャ」というものがあります。 Functionプロシージャは、「Callステートメント」でも呼び出せますが、通常は「関数」として利用するものです。つまり、それ自体にデータ型を指定することができ、戻り値を持ちます。 '*************************************************************************************************** ' Functionプロシージャサンプル Module1(Module) ' ' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!] '*****************************

  • 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(

    NSTanechan
    NSTanechan 2014/02/14
    “.Address”
  • VBA応用(Excelが認知している最終行を取得する。)

    データが登録されている最終行を取得するのは、何通りかの方法があります。 Excelが認知しているセル情報を取得する方法 「SpecialCells」メソッドを使います。 '*************************************************************************************************** ' 最終行の取得サンプル① Module1(Module) ' ' 作成者:井上治 URL:https://www.ne.jp/asahi/excel/inoue/ [Excelでお仕事!] '*************************************************************************************************** '変更日付 Rev 変更履歴内容-

    NSTanechan
    NSTanechan 2014/02/14
    “ カッコ内の定数指示子はVBEでこのように列挙表示されるので、簡単に指定ができます。内容は「最終セル」の他、「コメントのセル」「計算式のセル」”
  • Office TANAKA - ファイルの操作[ファイルの存在を調べる]

    美しいマクロは「頑強性」を持っています。どんな環境でも、ユーザーがどれほど予想外の操作をしても、滅多なことでは停止しないマクロを目指しましょう。それには「○○のはず」という固定概念を払拭するのがポイントです。「ここにファイルがあるはず」「シート名はSheet1のはず」などなど、固定概念が多いマクロほど思わぬトラブルを招くものです。 たとえば、次のコードは、ブックを開く簡単なマクロです。 Sub Sample1() Workbooks.Open "Book2.xlsx" End Sub シンプルですけど、これはマズイですね。「Book2.xls」にパスを指定していませんから、これでは「カレントフォルダのBook2.xls」になってしまいます。カレントフォルダは、Excelでブックを開いたり保存したりするだけでも変わりますから、Book2.xlsxが見つからない場合もあります。明示的にカレント

  • やってみよう!Excel VBAで業務改善!|VBAエキスパート公式サイト

    コンテンツでは、多くの企業で抱える問題が、 VBAによって次々と解決されていく様子をストーリー仕立てで楽しく紹介します。 企業や学校など、組織の教育・効率改善を考える方々に、 「VBAとは何なのか?」 「VBAによってどのように業務改善されるのか」 をぜひ体感していただきたいと思います。 コラム作者:武藤 玄 プロフィールとメッセージ シーズン6 「森川くんのVBA日記編」 情報学を専攻した森川くんの配属された部署は、業務部業務課。そこで、星くんたちとVBAに出会います。生まれて初めて体験するVBAに戸惑いながらも、基礎を学び、着実にスキルアップしていきます。

    やってみよう!Excel VBAで業務改善!|VBAエキスパート公式サイト
  • 第15話「モジュールとプロシージャをくわしく知ろう」1/4:モジュールの種類について|VBAとの出会い編|VBAエキスパートコラム

    モジュールの種類について 八木くんが、再びVBEの画面を操作し始めました。 「今までは、モジュールやプロシージャの種類について適当に話してきたけど、これからは明確に区別して話すことにするよ。 まずモジュールの種類だけど、Excel VBAには大きく分けて2つの種類のモジュールが用意してあるんだ」 八木くんは、VBEのプロジェクトエクスプローラを右クリックし、ショートカットメニューから[挿入]→[標準モジュール]をクリックしました。 「今、挿入したモジュールが"標準モジュール"と呼ばれるモジュールだ。 これで、プロジェクトエクスプローラには、合計6つのモジュールがあることになる。 順番に説明していこう」 「上から3つのモジュールは、"シートモジュール"といってワークシートにくっついてるモジュールだ。 4つめは"ブックモジュール"といってブックにくっついてるモジュール、 5つめは"フォームモジ

    第15話「モジュールとプロシージャをくわしく知ろう」1/4:モジュールの種類について|VBAとの出会い編|VBAエキスパートコラム
  • セルに数式を入力/取得する(Formula/FormulaR1C1プロパティ):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    セルに数式を入力/取得する(Formula/FormulaR1C1プロパティ) (Excel 2000/2002/2003/2007/2010/2013/2016) ツイート セルに数式を入力、または入力されている数式を取得するプロパティです。 対象がセル範囲の時には取得される結果は2次元の配列になります。 構文 Object.Formula A1形式で数式の設定/取得 Object.FormulaR1C1 R1C1形式で数式の設定/取得 数式を設定するときは「=」から記述し、数式全体を「"」で囲みます。 「=」を忘れると文字列とみなされてしまうので、注意してください。 ■A1形式とR1C1形式 セルを参照する形式には、A1形式とR1C1形式があります。 A1形式は「A1」や「C5」のように、列をアルファベット、行を行番号で表す形式です。 Excelの既定ではA1形式になっているのでおなじ

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。