タグ

ブックマーク / officetanaka.net (7)

  • Office TANAKA - セルの操作[データの入力]

    セルはRangeオブジェクトで表されます。Rangeオブジェクトを特定するには、一般的に次の2つのプロパティを使います。 Rangeプロパティ Cellsプロパティ Rangeプロパティは「Range("A2")」とアドレスを指定します。一方のCellsプロパティは「Cells(2,1)」のように行番号と列番号を指定します。指定する順序は「Cells(行番号,列番号)」です。 セルにデータを入力するには、このRangeオブジェクトのValueプロパティにデータを代入します。次のコードは、セルA2に123という数値を入力します。 Sub Sample1() Range("A2").Value = 123 End Sub また、数値や文字列など単純なデータを入力する場合は、Valueプロパティを省略しても入力できます。次のコードは、セルA2に「田中」という文字列を入力します。 Sub Samp

    iww
    iww 2016/06/14
    Range("A2").Value = hoge
  • Office TANAKA - セルの操作[データの取得]

    セルにどんなデータが入力されているかを調べるには、データの入力と同じようにRangeオブジェクトのValueプロパティを参照します。次のコードは、セルA2に入力されているデータを画面に表示します。 Sub Sample1() MsgBox Range("A2").Value End Sub もちろん、データを入力するときと同じようにValueプロパティを省略することもできます。では、データの入力と同じように、複数のセルに入力されているデータを同時に取得することもできるのでしょうか。もちろんできます。しかし、データの入力ほど簡単ではありません。次のコードは、セル範囲A2:A5に入力されているデータを配列bufに取り込みます。 Sub Sample2() Dim buf As Variant, n As Long buf = Range("A2:A5").Value n = InputBox(

    iww
    iww 2016/06/14
    hoge = Range("A2").Value
  • Office TANAKA - Excel VBA Tips[テキストファイルを読み上げる]

    Excel 2002から追加された機能にSpeakメソッドがあります。Speakメソッドは任意のデータを読み上げる命令で、次のように使います。次のコードは、セル範囲A1:A4のデータを読み上げます。 Sub Sample1() Range("A1:A4").Speak End Sub けっこう笑えます。 さて、このSpeakメソッドは上記のようにRangeオブジェクトのメソッドですが、実はApplicationオブジェクトの配下にSpeachオブジェクトというのがあり、そのSpeachオブジェクトにも同じSpeakメソッドが用意されています。 Sub Sample2() Application.Speech.Speak Range("A1") End Sub SpeachオブジェクトのSpeakメソッドは引数に単一のテキストを指定しますので、Application.Speech.Speak

    iww
    iww 2016/06/09
    Application.Speech.Speak
  • Office TANAKA - ファイルの操作[ブックを閉じる]

    ブックを閉じるには、WorkbookオブジェクトのCloseメソッドを使います。次のコードは、すでに開いている Book1.xlsx を閉じます。 Sub Sample1() Workbooks("Book1.xlsx").Close End Sub Windowsの「フォルダオプション」で、[登録されている拡張子は表示しない]がオンになっていると、エクスプローラでファイルの拡張子が表示されません。 このとき、Excelで開いているブックも、タイトルバーに拡張子が表示されなくなります。 【拡張子を表示する設定のとき】 【拡張子を表示しない設定のとき】 拡張子を表示する設定のとき、Workbooks("Book1").Closeのように拡張子を指定しないと、エラーになります。 つまり、こういうことです。 拡張子を ("Book1").Close ("Book1.xlsx").Close [フ

  • Office TANAKA - Excel VBA Tips[他ブックのマクロを実行する]

    Excel 上で 2 つのブックを開いていたとします。ここでは仮に「Book1.xlsm」と「Book2.xlsm」としましょうか。 「Book1.xlsm」には『Sub Test1』というマクロがあり、「Book2.xlsm」には『Sub Test2』というマクロがあったとします。 ここで、Test1 から Test2 を実行しようと次のように書くとエラーになります。 Sub Test1() Call Test2 End Sub Book1.xlsm には Sub Test2 がありませんので、Sub プロシージャが見つかりません というエラーです。来のやり方は、Book1.xlsm から Book2.xlsm を参照設定すればよいのですが、これは面倒くさいです。 他ブックのプロシージャを実行するときは、Call メソッドではなく Run メソッドを使いましょう。 Sub Test1(

  • Office TANAKA - 秀丸マクロ[サブルーチン(Split関数を作ってみた)]

    $buf = "tanaka,suzuki,yamada,sato"; call Split $buf, ","; while ( #i <= ##return ) { $msg = $msg + $ReSplit[#i] + "\n"; #i = #i + 1; } message $msg; endmacro; Split: while ( ##i < strlen($$1) ) { if ( midstr($$1, ##i, 1) == $$2 ) { ##cnt = ##cnt + 1; $ReSplit[##cnt -1] = midstr($$1, ##start, ##i - ##start); ##start = ##i + 1; } ##i = ##i + 1; } $ReSplit[##cnt] = midstr($$1, ##start); return ##cnt;

    iww
    iww 2014/01/22
  • Office TANAKA - Excel Tips[(1)を-1にさせない]

    通常のセルに「(1)」と入力すると、自動的に「-1」という数値として入力されます。これはExcelの仕様です。欧米の財務諸表などでは、マイナスの数値を括弧で囲むというルールがあるからです。もちろん、すべての表がそのように記載されているわけではありません。そういうルールもある、という意味です。日だってマイナスの数値を表すとき、先頭に「▲」を付けることがありますよね。特に決算書など財務諸表ではこれが当たり前です。Excelは米国産のアプリケーションですから、そうしたお国柄が仕様に反映されているのはやむを得ないでしょう。 さて、そうは言っても、ときには「(1)」をそのまま入力したいときもありますよね。シート上に箇条書きなどを書く場合です。これには三通りの方法がありますので、お好きな方法で対応してください。 1.先頭に「'」を付ける 一般的に「123」は数値で、「田中」は文字列です。Excel

    iww
    iww 2010/11/27
    オートコレクトで(1)を '(1) と自動変換させる。この発想はなかった。
  • 1