[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

2018年4月24日のブックマーク (9件)

  • VBAでループのcontinueを疑似的に行う方法 | Excel作業をVBAで効率化

    fumokmm
    fumokmm 2018/04/24
  • Office TANAKA - Excel VBA Tips[結合セルを調べる]

    セルを結合するにはRangeオブジェクトのMergeメソッドを実行します。 Sub Sample1() Range("A1:B3").Merge End Sub こんな感じです。実行するとセル範囲A1:B3が結合されます。ちなみに結合を解除するにはUnMergeメソッドを実行します。 さて、セルを結合したり解除したりするのは簡単ですが、任意のセルが結合されているかどうかを調べるにはどうしたらいいでしょう。実は今やってる仕事の支援システムを作っていて、この判断が必要になりました。そんなに難しいテクニックではありませんが、意外と知られていないようなので、せっかくですからご紹介しましょう。 ここでは上図のようなシートを例にします。セル範囲A3:A4とセル範囲A6:A8が結合されています。B列は結合されていません。よくみかけるレイアウトですよね。 結合セルの判定で役立つのはMergeCellsプロ

    fumokmm
    fumokmm 2018/04/24
  • [ Excel-VBA ] クリップボードからコピー(切り取り)したデータを削除する ( CutCopyMode ) – 偏差値40プログラマー

    エクセルやワードなどの内容をコピーしたり、切り取りする機会は多いですが、重要なデータをクリップボードに残したままの状態にしておくと、予期せぬ情報漏えいにつながる可能性があります。 このような事故を防ぐためにも、クリップボードにコピーした情報は削除しておきた方が良い場合がありますので、以下クリップボードの情報を削除するサンプルです。 クリップボードの内容を削除する エクセルを使用したサンプルになります。詳細はサンプル内のコメントを参照ください。 Private Sub CommandButton1_Click() ' セルA1を選択する Range("A1").Select ' 選択したセル(A1)をコピーする Selection.Copy ' 切り取る場合は以下 'Selection.Cut '現在のコピーモードを出力する Select Case Application.CutCopyMo

    fumokmm
    fumokmm 2018/04/24
  • Excel VBAで1行に2つのコードを書くことはできないのでしょうか?

    JavaScriptなどではa=1;b=2;と書けばよいのですが VBAの場合は1行に2つのコードを書くことはできないのでしょうか? 使用OS:Windows XP 使用ソフト:Microsoft Excel 2003 ご存知の方がおられましたらご回答をよろしくお願いします。

    Excel VBAで1行に2つのコードを書くことはできないのでしょうか?
    fumokmm
    fumokmm 2018/04/24
  • プロシージャーへの引数の渡し方 ByRef と ByVal - アプリケーションとしてのVBA

    ◆プロシージャーへの引数の渡し方 ByRef と ByVal プロシージャーへの変数の渡し方は、2通りあります。 ByRef と ByValです。 ByRef は「参照渡し」と呼ばれ、変数を渡されたプロシージャー側で引数の値を 変更すると、呼び出し元のプロシージャーの変数の値も変わってしまいます。 C のポインタと同じと考えればよいでしょう。 一方、ByVal は「値渡し」と呼ばれ、プロシージャに値を提供するだけで、 ByRef のように呼び出し元のプロシージャーに影響することはありません。 デフォルトでは、ByRef になっています。 呼び出したプロシージャーで引数の値を変更すると、思わぬトラブルになりかねません。 十分に注意してください。 ①参照渡し ByRef Private Sub test1() Dim counter As Integer counter = 1 test2 c

    fumokmm
    fumokmm 2018/04/24
  • 行範囲を指定・取得する-Range・EntireRow・Rows:Excel VBA Rangeオブジェクト/行・列を表すRange

    対象:Excel2007, Excel2010, Excel2013, WindowsExcel2016 「excel マクロ 行範囲指定」 「エクセル マクロ 行範囲 取得 マクロ」 といった検索で、このサイト『インストラクターのネタ帳』へのアクセスがありました。 Excelマクロ・VBAで行範囲の指定を行うには、行範囲を表すRangeオブジェクトを取得するには、どのようなコードを書けばいいのか探していた方による検索です。 行全体を表すRangeオブジェクトを取得するオブジェクト式の、いわば複数行バージョンを探していた検索キーワードです。

    fumokmm
    fumokmm 2018/04/24
  • 【VBA】コンストラクタとデストラクタ - B-Teck!

    VBAにもクラスのコンストラクタとデストラクタがあるらしく、利用方法をまとめた。 コンストラクタ Public Sub Class_Initialize() 'ここに処理を書く End Sub デストラクタ Public Sub Class_Terminate() 'ここに処理を書く End Sub ただし、引数を設定することが出来ず、宣言と同時に初期化を行った場合にはClass_Initializeが走らないという謎の挙動をしてる TestClass Public Sub Class_Initialize() debug.print "コンストラクタが動いたよ!" End Sub Public Sub Class_Terminate() debug.print "デストラクタが動いたよ!" End Sub Test1プロシージャ Public Sub Test1() Dim testA

    【VBA】コンストラクタとデストラクタ - B-Teck!
    fumokmm
    fumokmm 2018/04/24
  • VBA マクロ高速化のために停止すべき3項目 - t-hom’s diary

    VBAでは画面描画を停止すると実行が早くなることは広く知られているが、実はあと2つ、設定すると有効なオプションがある。 手動計算と、イベントの抑制だ。 それぞれ、次のようにして設定する。 Application.ScreenUpdating = False '描画停止 Application.EnableEvents = False 'イベント抑制 Application.Calculation = xlCalculationManual '手動計算 With文で一度に設定しても良い。 With Application .ScreenUpdating = False .EnableEvents = False .Calculation = xlCalculationManual End With 設定を解除するには次のようにする。 With Application .ScreenUpdat

    VBA マクロ高速化のために停止すべき3項目 - t-hom’s diary
    fumokmm
    fumokmm 2018/04/24
  • Office TANAKA - VBA高速化テクニック[配列を使う]

    パソコン通信時代に書いた、この「VBA高速化テクニック」の中で、間違って伝わっているな~と感じていたのは、冒頭の「画面を止める」と、これ「配列を使う」です。90年代のパソコンはスペックが低かったです。CPUは遅いし、メモリも少なく低速、Windowsの画面描画機能も遅かったし、そもそもExcelもそれほど速くはなかったです。そんな中で、大量のセルにアクセスするのなら、一度配列に入れて配列を操作する方が速いよって話でした。でも、何となく「配列に入れると速い」ということだけが一人歩きして、とにかく何でも「配列は速い!配列は速い!配列!配列ぅ!」って言われてます。 ちょっとやってみましょうか。まずは単純に、データを探す操作から。A列に200,000個の名前が入っています。この中から"田中"を探して、該当するB列の数値を取得します。ちなみに"田中"は一番下のセルA200000にあります。 Sub

    fumokmm
    fumokmm 2018/04/24