タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

01_VBAに関するamerica66のブックマーク (21)

  • アクティブシート以外のすべてのシートを無条件に削除する:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

  • シートを追加する(Addメソッド):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

  • Office TANAKA - シートの操作[シートを削除する]

    シートの削除はDeleteメソッド シートを削除するにはWorksheetオブジェクトのDeleteメソッドを使います。次のコードはアクティブシートを削除します。 Sub Sample04() Activesheet.Delete End Sub 実に簡単です。ところが厄介なことに、データを入力したシートを削除しようとすると「当に削除してもいいの?戻せないよ?いいの?」と念を押されます。手作業でしたら[削除]ボタンをクリックすればいいのですが、マクロで一連の処理を行うとき、いちいちこのメッセージで止まっては困ります。このメッセージを出さないで削除する方法はないのでしょうか。 もちろんあります。Excelでは多くの確認メッセージが表示されます。この確認メッセージを全て出さなくするには、ApplicationオブジェクトのDisplayAlertsプロパティにFalseを設定します。次のコー

  • Excel VBA 入門講座 検索 Find

    Sub Search() Dim lngYLine As Long Dim intXLine As Integer Dim Obj As Object Set Obj = Worksheets("Sheet1").Cells.Find("りんご") If Obj Is Nothing Then MsgBox "りんごは見つかりませんでした。" Else lngYLine = Worksheets("Sheet1").Cells.Find("りんご").Row intXLine = Worksheets("Sheet1").Cells.Find("りんご").Column MsgBox "りんごは、" + CStr(lngYLine) + "行目の" _ + CStr(intXLine) + "列目にあります" End If End Sub Sub Search() Dim lngYLine

  • ExcelVBAでのCountIf処理について質問 - OKWAVE

    お世話になります。 首記の件で困っております。 特に不具合なく動いているのですが、 あまりにも動作が遅い。。。 VBAは普段がりがりやっているのではないのですが、 今回の処理は約30万レコード分の処理があるのでどうしても VBAでないときついと思いチャレンジしています。 やりたいことは、A列にある値がR列の限られたエリアにいくつ存在するか、 というチェック作業です。 コードを記載しますので、 どなたかやさしい突っ込みお願いしますw Sub CntIf() For myRow = 2 To 300000 Cells(myRow, 19) = WorksheetFunction.CountIf(Range("Q2:Q300000"), Cells(myRow, 1)) cntRec = cntRec + 1 Application.StatusBar = "処理実行中....(現在 " & c

    ExcelVBAでのCountIf処理について質問 - OKWAVE
  • 実行時間を表示する - アプリケーションとしてのVBA

    ◆実行時間を表示する いろいろなマクロを作り始めた頃は、CPU のスピードが遅くて、 ちょっとしたマクロでも、1分~2分はかかっていました。 重たいマクロを走らせると10分以上はざらで、その頃に挿入していた 実行時間を表示するルーチンです。 少しでも早く動作させるためにはどうすれば良いかも気になるところです。 Dim StartTime, StopTime As Variant 'ここから実行時間のカウントを開始します StartTime = Time ' ' 仕事をさせたいマクロ ' StopTime = Time StopTime = StopTime - StartTime MsgBox "所要時間は" & Minute(StopTime) & "分" & _ Second(StopTime) & "秒 でした"

  • 12491-0 | VBで#ifedfと同様なことをしたい。 - VB初心者友の会 - Q&A掲示板過去ログ

  • phyllo.net

  • シートをアクティブにする

    Excel VBA を使って指定したワークシートをアクティブにする方法を解説します。アクティブになったワークシートと言うのは、一番前面に表示されているワークシートのことです。一度にアクティブにできるワークシートは1つだけです。

    シートをアクティブにする
  • Office TANAKA - Excel VBA(エラーに負けない)

    マクロ開発者にとってエラーは嫌なものです。できればエラーメッセージは見たくありませんし、対処のしかたに慣れていないと、エラーの原因を解明するために思わぬ時間が必要だったりもします。もちろんエラーは発生させないのが一番ですが、そうも言っていられません。ここでは、エラーを回避するテクニックをご紹介します。 エラーを無視する たとえば次のコードは、ワークシート名を取得して表示します。 Sub Sample1() Dim i As Long, buf As String For i = 1 To 4 buf = buf & Worksheets(i).Name & vbCrLf Next i MsgBox buf End Sub しかし、For Nextの繰り返しを4回実行しているため、ワークシートが3枚以下だとエラーになります。 For Nextのループ中でエラーが発生してマクロはストップします

  • クレジットカード現金化の高還元率の優良店を選ぶためには

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

  • 文字列検索-Findメソッドの応用:Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    ツイート 特定の文字列をセル範囲から検索するにはFindメソッドを使用します。 Findメソッドが検索結果として返すセルを対象に、さまざまなことを行うことが出来ます。 たとえば、検索結果のセルの背景色を変えたり、セル内の検索文字列のフォントを操作したり、隣合うセルを結合するなど、セルの操作で可能なことをFindメソッドの検索結果に対して行うことが出来ます。 ここではFind/FindNextメソッドを組あわせた応用例をご紹介します。 ■検索結果のセルに含まれる検索文字列のフォントを操作する 次のサンプルは、ダイアログボックスで指定した文字列を検索し、セル内にある検索文字列のみ赤・太字に設定します。 ●サンプル1● Sub PaintTargetCharacter() Dim Target As String Dim FoundCell As Range, SearchArea As Ran

  • シート名の取得(セルと配列に格納):Excel VBA|即効テクニック|Excel VBAを学ぶならmoug

    ツイート ブックの中の全てのシート名を取得して、セルまたは配列に格納します。 サンプル1はFor Each...Nextステートメントを使って、ブックの中の全てのワークシート名をセルに書き出します。 ●サンプル1● Sub Sample1() Dim mySheet As Worksheet Dim myRow As Long myRow = 1 For Each mySheet In Worksheets '---(1) Sheets("Sheet1").Cells(myRow, 1).Value = mySheet.Name myRow = myRow + 1 Next End Sub ワークシートだけでなく全てのシートを対象にするには、Sheetsコレクションを使用します。(1)の「Worksheets」を「Sheets」に変更すると、グラフシートも含めた全てのシート名を書き出します

  • Office TANAKA - Excel VBA Tips[ブックを開かないでセルのデータを読む]

    このコンテンツは、かなり昔に書きました。正確な時期は覚えていませんが、ワークシートの大きさが65,536行より小さいブックに関して触れていましたので、おそらく1998年前後に書いたのではないかと。22年前かぁ…w 内容もちょっとアレですし、書き足したいこともありますので、全面的に書き直します。ちなみに今は、2020年9月です。 なお、稿と"ほぼ"同じ内容をYouTubeの動画で公開しています。稿とは違い、100個のブックから読み込んで所要時間を計測していますので、興味のある方はご覧ください。稿は、1つのブックから読み込むという基的な方法と、動画では伝えきれなかった"制約"に関して詳しく解説します。 Excel 4.0マクロで読み込む 原則としてExcelVBAは、Excel上に読み込んだブックを扱います。Excel上に開いていないブックは、原則として操作できません。この原則は、し

  • Excel VBA 入門講座 ワークシートのコピー

    '現在アクティブなシートを"Sheet2"の後ろにコピーする Sub CopyWorksheet() ActiveSheet.Copy After:=Worksheets("Sheet2") End Sub '"Sheet1"を"Sheet2"の後ろにコピーする Sub CopyWorksheet() Worksheets("Sheet1").Copy After:=Worksheets("Sheet2") End Sub '現在アクティブなシートを"Sheet2"の前にコピーする Sub CopyWorksheet() ActiveSheet.Copy Before:=Worksheets("Sheet2") End Sub '"Sheet2"を"Sheet1"の前にコピーする Sub CopyWorksheet() Worksheets("Sheet2").Copy Before:=W

  • 値渡しで引数を渡す

    Sub テスト() Call warikireCheck End Sub Sub warikireCheck() Dim num As Integer num = 10 If num Mod 2 = 0 Then Range("A1").Value = "割り切れます" Else Range("A1").Value = "割り切れません" End If End Sub

    値渡しで引数を渡す
  • 関数から配列を返す

    前の例では、配列変数を別の配列に割り当てました。この例に基づいて、次のように配列を返すプロシージャを呼び出し、その配列を別の配列に割り当てることが可能です。 Dim astr1() As String astr1 = ReturnArray 配列を返すには、プロシージャに配列と同じデータ型、またはバリアント型 (Variant) の戻り値が必要です。プロシージャを宣言して指定のデータ型の配列を返す方法には、配列が返されたことを確認するために IsArray 関数を使用する必要がないという利点があります。プロシージャがバリアント型の値を返した場合、配列に対する操作を開始する前に内容を確認することをお勧めします。 ReturnArray プロシージャはユーザーによる入力を要求し、結果値の配列を適切な長さで作成します。このプロシージャで配列を返すためには、目的の配列をこのプロシージャ名に割り当て

    関数から配列を返す
  • Excel VBA を学ぶなら moug モーグ | 即効テクニック | フォルダ内のファイル一覧を取得する

    あるフォルダの中に保存されているファイルの一覧を取得するにはどうしたらいいでしょう。 真っ先に思いつくのは、Dir関数とDo Loopステートメントを使う方法です。 ここでは、C:\Workフォルダに、複数のファイルが存在するものとします。 取得したファイルの一覧は、アクティブシートのA列に書き出します。 Sub Sample1() Dim i As Long, buf As String Const Path As String = "C:\Work\" buf = Dir(Path & "*.*") Do While buf <> "" i = i + 1 Cells(i, 1) = buf buf = Dir() Loop msgbox "全部で" & i & "個ファイルがありました" End Sub これは、それほど難しくありませんね。 今回は、FileSystemObjectを

  • Excel 2007 マクロ 別ブックのシートをコピーする方法

    Excel 2007 マクロ 別ブックのシートをコピーする方法 別ブックのシートをコピーして アクティブなブックのシートにコピーしたいと思います。 下記マクロを作成しました。 貼り付ける際に、クリップボードに保存するかどうか 聞かれるメッセージが表示されてうまくいきません。 またもっとシンプルな書き方があればアドバイスお願いします。 Sub 取り込み() Dim wb As Workbook Set wb = Workbooks.Open("\") Sheets("Sheet1").Select Cells.Select Selection.Copy ThisWorkbook.Activate ThisWorkbook.Sheets("特定").Select ActiveSheet.Cells(1, 1).Select ActiveSheet.Paste wb.Close End Sub

    Excel 2007 マクロ 別ブックのシートをコピーする方法
  • Excel VBA 入門講座 行の指定

    'アクティブなシートのセルB1~D3の範囲を全てクリア Sub ClearCell() Range(Cells(1,2),Cells(3,4)).Clear End Sub 'アクティブなシートのセルB1~D3の範囲の数式、文字列をクリア Sub ClearCell() Range("B1:D3").ClearContents End Sub 'アクティブなシートのセル全範囲をクリア Sub ClearCell() Cells.Clear End Sub 'Sheet1のセルB1~D3の範囲をクリア Sub ClearCell() Worksheets("Sheet1").Activate Worksheets("Sheet1").Range(Cells(1,2),Cells(3,4)).Clear End Sub 'Sheet1のセルB1~D3の範囲の書式をクリア Sub ClearCe