タグ

VBAに関するNSTanechanのブックマーク (39)

  • エクセル「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 - セルの操作[背景色の設定]

    セルの文字色を設定するには、FontオブジェクトのColorIndexプロパティかColorプロパティを使います。 Sub Sample1() Range("B2").Font.ColorIndex = 3 ''色パレットの3番を設定します Range("B3").Font.Color = RGB(0, 0, 255) ''青色に設定します End Sub セルの背景色(塗りつぶし色)を設定するには、Rangeオブジェクト配下のInteriorオブジェクトを操作します。 Sub Sample2() Range("B2").Interior.ColorIndex = 3 ''色パレットの3番を設定します Range("B3").Interior.Color = RGB(0, 0, 255) ''青色に設定します End Sub ColorIndexプロパティとは何か Colorプロパティとは

  • 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でこのように列挙表示されるので、簡単に指定ができます。内容は「最終セル」の他、「コメントのセル」「計算式のセル」”
  • サービス終了のお知らせ

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

  • Office TANAKA - ファイルの操作[ファイルの存在を調べる]

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

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

    資格は、その道の専門家たちが、これだけは知っておいてほしいと考えるところを、カタチにしたものです。 オデッセイ コミュニケーションズは、さまざまな分野の専門家たちと協力して、時代が必要とする資格を、皆さんにご提供していきます。 新しい資格を取得することで、新しいキャリアを、そして新しい日を、切り開いていこうとする人たちを、オデッセイ コミュニケーションズは応援しています。 新しい資格、新しいキャリア。オデッセイ コミュニケーションズ 直営の試験会場オデッセイ テスティングセンター コンピューターとインターネットの国際資格IC3(アイシースリー)公式サイト 試験配信サービスOdyssey CBT Excel、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート 公式サイト 資格試験の準備やスキルアップに役立つサイトaoten(アオテン) アドビ製品の利用スキルを証明する資格

  • 第15話「モジュールとプロシージャをくわしく知ろう」1/4|VBAとの出会い編|やってみよう!Excel VBAで業務改善!

    資格は、その道の専門家たちが、これだけは知っておいてほしいと考えるところを、カタチにしたものです。 オデッセイ コミュニケーションズは、さまざまな分野の専門家たちと協力して、時代が必要とする資格を、皆さんにご提供していきます。 新しい資格を取得することで、新しいキャリアを、そして新しい日を、切り開いていこうとする人たちを、オデッセイ コミュニケーションズは応援しています。 新しい資格、新しいキャリア。オデッセイ コミュニケーションズ 直営の試験会場オデッセイ テスティングセンター コンピューターとインターネットの国際資格IC3(アイシースリー)公式サイト 試験配信サービスOdyssey CBT Excel、Accessのマクロ・VBAのスキルを評価する資格VBAエキスパート 公式サイト 資格試験の準備やスキルアップに役立つサイトaoten(アオテン) アドビ製品の利用スキルを証明する資格