Excelでマクロ(VBA)を実行しているとお考えください。
内容は他のシートのデータを別のシートにコピー&ペーストするとお考えください。
すると、画面がめまぐるしく動きます。
これをとめる方法をご存知の方教えていただければうれしいです。
(以前、やったことがあるんですが、忘れてしまいました)
(また、検索で調べようとしたのですが、どのようなキーワードで検索すればいいのかわかりませんでした(私のキーワードでは見つかりませんでした))
よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

はじめまして.



以下のコマンドでできると思いますよ。

マクロの最初に
Application.ScreenUpdating = False '画面更新抑止
を入れて、

マクロの最後に
Application.ScreenUpdating = True '画面を更新
を入れる。

こんなのでどうでしょう!?
では。
    • good
    • 2
この回答へのお礼

ありがとうございます。
ExcelのVBAを久しぶりにやったのでいろいろ忘れていること多いです。
できたはずなのにと思っても、どう調べていいのかわからないのが実情です。
この質問もどんな検索キーワードで調べればいいのでしょうね。
とにかく、ありがとうございます。

お礼日時:2003/03/27 09:49

Application.ScreenUpdating = False


この1行を最初に実行してください。
    • good
    • 0
この回答へのお礼

ありがとうございます。
Screnn何とかだと思っていたんですが。
助かりました。

お礼日時:2003/03/27 09:47

コピーorペーストをする処理で、selectでセルを指定して、activeなセルからコピーorペーストするとselectしたセルに画面が行きますが、selectせずに


Cells((t + 2), 2) = Cells((t + 2),3)
とやると、画面が動きません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
私の場合、Excelの他のファイル上のシートを切り替えながらコピーしていきます。
Cellsにシート名を付け加えればいいのかもしれませんが、確かに画面を動かさないいい方法だと思います。(あまり詳しくなくてすみません)
ただ、できれば、VBAで画面の更新を止める方法を知りたいのですが。

お礼日時:2003/03/27 09:20

Ctrl+Pause(Break)です。

この回答への補足

ありがとうございます。
しかし、Ctrl+Pauseはマクロ(VBA)の実行そのものを停止する方法ではないかと思います。(間違っていたらすみません)
私が知りたかったのは、VBAのプロシジャーの先頭付近でScreenPlay=False(ステートメント?関数?は正しいかわかりませんが)のような1文を書き込んで画面を更新しないようにして、マクロ(VBA)の実行後、画面を更新する方法です。
おわかりいただけるでしょうか?

補足日時:2003/03/27 09:15
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q画面の設定以外で文字の大きさを変更したい場合

こんばんは。WinXPを使っています。
画面のプロパティーから解像度を変更しても、文字の大きさが大きく感じます。WinXPの画面の設定から文字の大きさを変更する場合は解像度を変更しればいいと思うのですが、それでも小さくならない場合はどのようにして文字を小さくする事ができるでしょうか?

Aベストアンサー

解像度以外の手段では
画面のプロパティ→「デザイン」タブ→詳細設定
で、アクティブタイトルバー、パレットタイトル、ヒント、メッセージボックス、メニュー、選択項目、非アクティブタイトルバーの文字の大きさをポイント単位で変更できます。

ブラウザの文字の大きさなら、ブラウズの最中にマウスのスクロールボタンをCtrlボタンを押しながらグリグリすると5段階に変更できます。

ExcelやWordでしたら、ツール→オプション→全般タブから標準の文字の大きさをポイント単位で変更できます。

Qシートにあるキーワードを別のシートで検索し、該当する行(複数行)を新ブックに貼り付けたい

今週から勉強を始めたくらいのマクロ初心者なので言っている事が分かりにくかったらすみません。
エクセルVBAでマクロを組んでいるのですが、
Sheet1にあるキーワード(B3~)をSheet2の指定の列で検索し、
そのキーワードが含まれている行を新しいブックにコピーするものを作成したいです。
どうやっても検索とシートのコピーのところがうまくいかず、Sheet2の行数が2万ぐらいあるのでどの方法で検索をしたらいいのか困っています。
とりあえずブック内にシートを1つ作って、そこにヒットした行を貼り付け新しいブックにコピーすればいいのかと思いやっているのですが、動きません…
以下に現時点でのソースを記載するのでどこがまずいのか助言宜しくお願いします。


Sub kensaku()

Dim key As String
Dim target As String
Dim x As Integer
Dim y As Long
Dim z As Long

x = 3
y = 10
z = 1

Set sh = Worksheets.Add
sh.Name = "kekka"

key = Worksheets("Sheet1").Range("B" & x).Value
Do Until Worksheets("Sheet1").Range("B" & x) = ""
target = Worksheets("Sheet2").Range("F" & y).Value
Do Until Worksheets("Sheet2").Range("F" & y) = ""
If target = key Then
Worksheets("Sheet2").Rows(y).Select
Selection.Copy
Sheets("kekka").Rows(z).Activate
Activesheet.Paste
z = z + 1
End If
y = y + 1
Loop
x = x + 1
Loop

Worksheets("kekka").Copy

Application.DisplayAlerts = False
Worksheets("kekka").Delete
Application.DisplayAlerts = True

End Sub

今週から勉強を始めたくらいのマクロ初心者なので言っている事が分かりにくかったらすみません。
エクセルVBAでマクロを組んでいるのですが、
Sheet1にあるキーワード(B3~)をSheet2の指定の列で検索し、
そのキーワードが含まれている行を新しいブックにコピーするものを作成したいです。
どうやっても検索とシートのコピーのところがうまくいかず、Sheet2の行数が2万ぐらいあるのでどの方法で検索をしたらいいのか困っています。
とりあえずブック内にシートを1つ作って、そこにヒットした行を貼り付け新...続きを読む

Aベストアンサー

>そのキーワードが含まれている行を新しいブックにコピーするものを作成したいです。

オートフィルタでキーワードの文字を絞り込んでから、表の範囲をコピーして別のシートに貼り付けを行う方が簡単で早いですよ。


フィルタで絞り込んでコピーし、別シートに貼り付けと言う作業を記録マクロにして、思い通りに動くように編集してみてはいかがでしょうか?

Q「新しいウィンドウで開く」で開く画面の大きさの変更の仕方を教えて下さい。

 恐れ入ります。初歩的な質問で済みません。
検索結果などがたくさん出て、それら一つ一つを右クリックで「新しいウィンドウで開く」をクリックし表示される画面の大きさを変更するにはどうしたら良いのでしょうか?
 ちなみに今は画面の中央に小さく表示されるのですが、目一杯の大きさに変更したいのです。
どうか宜しくお願い致します。

Aベストアンサー

>検索結果などがたくさん出て

タブブラウザを使った方がいいかな~と思います。

IEだと仰る様に一つ一つを右クリックで「新しいウィンドウで開く」をクリック
するのも面倒ですし、下におろすのも面倒です。

タブブラウザなら、画面がウインドウだらけになるうっとうしさも無いですし、
ポップアップも制御できます。

画面の切り替えもタブをクリックするだけですし、たくさんひらいた
ページをまとめて閉じることもできます。

ご存知でしたら失礼しました。

QExcel2003:開かれていない複数ブックより、検索キーを含むシートをコピーしてくる方法

Excelのマクロについてです。全く手がつけられないのでお知恵を拝借願えませんでしょうか。
あるシートに記載された検索キーをもとに複数ブックを検索し、そのデータを含むシートを拾い出すという作業を考えています。
あるレコード(数は10~50程度)に格納された文字列を複数ブックにわたって完全一致検索し、その文字列が含まれるシートを逐一拾ってくる(コピーしてくる)というマクロを考えています。

<状態>
レコードが入ったシート"C:\サンプル住所.xls"の内容:
シートは一枚(シート名:検索元)
セルD5 東京都港区
セルD6 青森県青森市
セルD7 東京都港区
セルD8 北海道足寄町
セルD9 福岡県北九州市
レコードはすべて文字列です。この例では5つですが、レコード数は1~多くても50くらいの間で変動し、同じ文字列が複数回出現することもあります。セル結合はありません。

検索先であるデータベース(以下"DB")は下位ディレクトリ(Prefフォルダ)に各都道府県のブックを放り込んであります:
C:\Prefs\北海道.xls
C:\Prefs\青森.xls
C:\Prefs\宮城.xls
(以下続く)
これら各ブックはシート1枚のみの構成で、セル結合はありません。またデータの重複はありません。なおブックの総数は47都道府県分とは限らず、検索内容によって変動します。

<目標>
"DB"内に"東京都港区"が存在するかどうかを検索し、見つかったら"C:\サンプル住所.xls"の最後に該当シートを追加。見つからなかった場合は空白シートを追加。どちらの場合もシート名は連番&検索キーとします。
これをレコードの数だけループさせ、検索されたシートがぎっしり詰まったブックを完成させます。
つまり、完成後のシートは左から以下のように並びます。
検索元 > 1_東京都港区 > 2_青森県青森市 > 3_東京都港区 > 4_北海道足寄町 > 2_大阪府大阪市

検索の導入部分としてダイアログを出しDBのディレクトリを選ぶところや、シート名をつけなおすあたりはさすがに何とかなるのですが・・・
ワークシート関数でしたらそれなりに使えるのですが、ブックをまたいだ作業はどこから手をつければいいのか皆目わからず。
ポインタやヒント、サンプル等、ご教示頂けると大変助かります。

自分でどこまで組み立てたのか?の思考の過程すら提示できずお恥ずかしい限りですが、なにとぞよろしくお願いします。

Excelのマクロについてです。全く手がつけられないのでお知恵を拝借願えませんでしょうか。
あるシートに記載された検索キーをもとに複数ブックを検索し、そのデータを含むシートを拾い出すという作業を考えています。
あるレコード(数は10~50程度)に格納された文字列を複数ブックにわたって完全一致検索し、その文字列が含まれるシートを逐一拾ってくる(コピーしてくる)というマクロを考えています。

<状態>
レコードが入ったシート"C:\サンプル住所.xls"の内容:
シートは一枚(シート名:検索元...続きを読む

Aベストアンサー

あらかじめファイルリストを作成するサンプルです。
#2さんの書き込みを見て気づいたんですが、1レコード検索する毎に
全エクセルファイルをオープン、クローズしているので
実行速度が遅いかもしれません。

Option Base 0
Option Explicit

Sub test()
  Dim i As Long
  Dim j As Long
  Dim SearchWord As String
  Dim FileList() As String
  Dim FileCnt As Long
  Dim ws As Worksheet
  
  Set ws = ActiveSheet
  
  Application.ScreenUpdating = False
  'ディレクトリ指定でエクセルファイルのリストを作成する
  FileCnt = GetAllxlsFilesInDir("D:", FileList())
  
  For i = 1 To Range("D65536").End(xlUp).Row
    ws.Activate
    SearchWord = Range("D" & i)
    
    If SearchWord = "" Then
      GoTo NEXT_RECORD
    End If
    
    '毎回Openを繰り返しているので遅いかも・・・
    For j = 0 To FileCnt - 1
    
      Workbooks.Open(FileList(j)).Activate
      
      'レコードの検索
      If (Cells.Find(What:=SearchWord, after:=ActiveCell, LookIn:=xlFormulas, _
          LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
          MatchCase:=True, SearchFormat:=False) Is Nothing = False) Then
        
        '見つかったらシートのコピー&リネーム
        With ThisWorkbook
          ActiveSheet.Copy after:=.Sheets(.Sheets.Count)
          .Sheets(.Sheets.Count).Name = i & "_" & SearchWord
        End With
        
        '閉じて次のレコードを探す
        Workbooks(Dir(FileList(j))).Close savechanges:=False
        GoTo NEXT_RECORD
      End If
      
      Workbooks(Dir(FileList(j))).Close savechanges:=False
    
    Next j
    
    '見つからなかったら空白のシートを追加
    With ThisWorkbook
      .Activate
      Sheets.Add
      ActiveSheet.Move after:=.Sheets(.Sheets.Count)
      .Sheets(.Sheets.Count).Name = i & "_" & SearchWord
    End With
    
NEXT_RECORD:
  
  Next i
  
  ws.Activate
  
  Application.ScreenUpdating = True
  
  Erase FileList
  Set ws = Nothing
  
End Sub

'フォルダ内のエクセルファイルのファイルリスト作成
'引数1:検索フォルダパス 引数2:ファイルリスト
'戻り値:見つかったファイル数
Function GetAllxlsFilesInDir(ByVal strDirPath As String, ByRef xlsFiles() As String) As Long

  Dim strTempName As String
  Dim FileCnt  As Long
  
  On Error GoTo GetAllFiles_End

  FileCnt = 0
  ' strDirPath が "\" 文字で終わっていることを確認します。
  If Right$(strDirPath, 1) <> "\" Then
    strDirPath = strDirPath & "\"
  End If
  
  ' strDirPath がディレクトリであることを確認します。
  If GetAttr(strDirPath) And vbDirectory <> vbDirectory Then
    GoTo GetAllFiles_End
  End If
    
  'エクセルファイルを検索する
  strTempName = Dir(strDirPath & "*.xls")
  
  Do Until Len(strTempName) = 0
    
    ' "." と ".." を除外
    If (strTempName = ".") Or (strTempName = "..") Then
      GoTo NEXT_DIR
    End If
    
    If strTempName Like "*.xls" Then
      'サブフォルダリストに登録する
      FileCnt = FileCnt + 1
      ReDim Preserve xlsFiles(FileCnt)
      xlsFiles(FileCnt - 1) = strDirPath & strTempName
    End If
    
NEXT_DIR:
    ' Dir 関数を使用して、次のファイル名を検索します。
    strTempName = Dir()
  Loop
  
  
GetAllFiles_End:

  GetAllxlsFilesInDir = FileCnt
  
End Function

あらかじめファイルリストを作成するサンプルです。
#2さんの書き込みを見て気づいたんですが、1レコード検索する毎に
全エクセルファイルをオープン、クローズしているので
実行速度が遅いかもしれません。

Option Base 0
Option Explicit

Sub test()
  Dim i As Long
  Dim j As Long
  Dim SearchWord As String
  Dim FileList() As String
  Dim FileCnt As Long
  Dim ws As Worksheet
  
  Set ws = ActiveSheet
  
  Application.ScreenUpdating = False
  '...続きを読む

QOutlookメールで、画面の文字の大きさを変更するには、どうしたらよ

Outlookメールで、画面の文字の大きさを変更するには、どうしたらよいのですか。

Aベストアンサー

画面の文字の大きさは、
[表示] メニュー → [現在のビュー] → [現在のビューの編集] →
[その他の設定] と [自動書式] の項目でそれぞれフォントの大きさが変更できます。
また、送信メールとテキスト形式の受信メールのフォントの大きさは、
[ツール] メニュー → [メール形式] タブ → [ひな形およびフォント] → [ひな形] タブでそれぞれ変更できます。

QVBAでキーワード検索

EXCEL(テキスト可)内に書かれた大量のキーワードを
1ワードずつ自動でGoogle検索し、
1ページ目の検索結果のリンクを1つ1つクリックしていき、
検索結果ページ内に、目的の情報があれば取得し、
EXCEL(テキスト可)に出力するといった操作を
VBAで自動で行いたいと思っています。

EXCEL2010かEXCEL2000に対応していればOKです。
検索するところまでは分かりましたが、検索結果(1ページ目のみ)
のリンクをクリックして、ページ内の目的の情報を取得する
といったところをどう記述すればよいかが分かりません。

検索するところまではこことほぼ同じように書きました。
http://vbaie.blog111.fc2.com/?mode=m&no=6

お分かりになる方、アドバイスのほど、よろしくお願いします。

Aベストアンサー

ちょうど正月休みでJavaScript - DOMのお勉強をしていましたので、試しにやってみました。
当方の環境(Win7Home64bit、IE10、xl2010-32bit)の環境ではお示しのコードは動きませんでした。
ソース(ページの見た目の割にとんでもなくごちゃごちゃしたソースで、自作のWebのTreeをワークシートに書き出すVBAコードを使って解析しました)を見ると、検索窓のIDや、「Google 検索」のタグも変わっている様でした。Googleさんの気分で時々変わるとすると、自力で作成できる様にお勉強していただくしかないと思います。下記で使用したidやclassnameも明日には変わっているかもしれません。
検索結果の最初の1ページ(10件分)のリンク-これも訳の分からない他のリンクが山ほど存在していて、正規表現による取得ではNGと思います-を取得して、5秒ごとにリンク先のページを表示するというところまでやってみました。ここまでで、自分の勉強に戻ります。ご参考まで。

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'Googleで「VBA」と検索する
Sub GoogleSearch()
Dim objIE As Object
Dim myElements As Object
Dim i As Long
Dim urls() As String

'IE起動
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
'Googleに接続
objIE.navigate "http://www.google.co.jp"
'IEを待機
Call IEWait(objIE)
'検索窓に「VBA」と入力
objIE.document.getElementById("gbqfq").Value = "VBA"
'1秒停止
Sleep 1000
'検索ボタンを押す
objIE.document.getElementById("gbqfb").Click
'IEを待機
Call IEWait(objIE)
Sleep 1000
Set myElements = objIE.document.getElementsByClassName("altcts")
ReDim urls(0 To myElements.Length - 1)
For i = 0 To UBound(urls)
urls(i) = myElements(i).NextSibling.FirstChild.href
Next i
'取得したリンク先を表示する
For i = 0 To UBound(urls)
objIE.navigate urls(i)
Sleep 5000
Next i

'IE終了
' objIE.Quit
' Set objIE = Nothing
End Sub

'IEを待機する関数
Function IEWait(ByRef objIE As Object)
Do While objIE.Busy = True Or objIE.readyState <> 4
DoEvents
Loop
End Function

ちょうど正月休みでJavaScript - DOMのお勉強をしていましたので、試しにやってみました。
当方の環境(Win7Home64bit、IE10、xl2010-32bit)の環境ではお示しのコードは動きませんでした。
ソース(ページの見た目の割にとんでもなくごちゃごちゃしたソースで、自作のWebのTreeをワークシートに書き出すVBAコードを使って解析しました)を見ると、検索窓のIDや、「Google 検索」のタグも変わっている様でした。Googleさんの気分で時々変わるとすると、自力で作成できる様にお勉強していただくしかないと思います...続きを読む

Q最初に表示されるIEの画面の大きさは、変更可能?

こんにちは、みなさん。

インターネットを見る時に、最初に表示される、インターネットエクスプローラーの
画面の大きさは変更できますか??

変更できるなら、どんなやり方ですか??

ご存知の方、いらっしゃいましたら、宜しくお願いします。

Aベストアンサー

IEを起動して始めに表示される画面(ホームページ)の状態で操作します。
マウスを使って表示させたい大きさにIEの全体のウィンドウを変更します。
任意の大きさと位置が決まったら「Shiftキー」を押しながら閉じるボタンをクリックしてIEを終了させます。

※Shiftキーでうまくいかない場合はShiftキーの替わりにCtrlキーを使って試してみてください
※大きさを決めるときは、いつも始めに開いたページでウィドウの大きさ・位置を決めるのがコツです
※IEにい限らず、エクスプローラも同じ要領で変更できます

Q複数のワークシートから循環してペースト

エクセルのマクロについて質問です。

複数のワークシートを循環して貼り付けれるマクロを作りたいのですが
わかる方教えてください。
やりたいことは、sheet1のD列の3行目の数値を空白にまでコピーし、別ブックのsheet1のB列の4行にはりつけし
次にもとのブックのsheet2のD列の3行目の数値を空白にまでコピーし、別ブックのsheet2のB列の貼り付けた最後尾に貼り付けし
また、もとのブックのsheet3のD列の3行目の数値を空白にまでコピーし、別ブックのsheet3のB列の貼り付けた最後尾に貼り付け
という作業を循環してほしいです。

よろしくお願いします。

Aベストアンサー

(1)エクセルの1つのブックの全シート(名)を1つずつとらえる方法(コード)
(2)指定シートのデータの最終行までをとらえる方法(コード)
(3) 別ブックの所定セル以下に貼り付け
(1)も(2)も毎日のように質問や回答で出てくるコードだ。
WEBででも照会すればコード例がたくさんでる。
勉強不足(丸投げ)。
Googleででも「VBA シート 全シート名 取得」で照会
Sub test01()
For Each ws In Worksheets
MsgBox ws.Name
MsgBox ws.Range("a1")
Next
End Sub
をやってみること。
ーー
Googleででも「VBA データ 最終行 取得」で照会
Sub test02()
Set ws = Worksheets("Sheet1")
d = ws.Range("a65536").End(xlUp).Row
MsgBox d
End Sub
をやってみること。
各ブック各シートを指定して、同様のことをするヒントは、
Set ws = Worksheets("Sheet1")
にある。その他ブック版を調べて勉強すること。
ーー
貼り付け先は、貼り付ける直前に、そのシートのデータ最終行(前段階のコピペ作業で行が増えていっている結果を見ている)をとらえて、その1行下から貼り付けすれば仕舞い。

(1)エクセルの1つのブックの全シート(名)を1つずつとらえる方法(コード)
(2)指定シートのデータの最終行までをとらえる方法(コード)
(3) 別ブックの所定セル以下に貼り付け
(1)も(2)も毎日のように質問や回答で出てくるコードだ。
WEBででも照会すればコード例がたくさんでる。
勉強不足(丸投げ)。
Googleででも「VBA シート 全シート名 取得」で照会
Sub test01()
For Each ws In Worksheets
MsgBox ws.Name
MsgBox ws.Range("a1")
Next
End Sub
をやってみること。
ーー
Googleで...続きを読む

Qようこそ画面アイコン大きさ変更

ようこそ画面でアイコンの大きさを変更したいのですが、どのようにしたらよいでしょうか、
ちなみに以下のレジストリー変更ではダメでした。
HKE_CURRENT_USER→desktoptop→logpixelsで数値の値を変える

Aベストアンサー

変えられないと思います。

QVB.NETのUsingキーワードの使い方

毎々参考にさせていただいております。
早速ですが質問させていただきます。

あるフォームでボタンが押された時に、下記の3つの処理でログを出力したい場合なのですが。
 a) ボタンが押されたイベント処理
 b) ボタンが押されたイベント処理の中で呼ばれるTestFunction1の中
 c) ボタンが押されたイベント処理の中で呼ばれるTestFunction2の中
複数のメソッドに参照されるということで、StreamWriterのオブジェクトはインスタンスフィールドに宣言しています。

Public Class Test
  'StreamWriter型のフィールド宣言
  Private _sw As System.IO.StreamWriter

  'ボタンクリックイベント処理
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Me._sw = New System.IO.StreamWriter(filePath)
    Using Me._sw
      Me._sw.WriteLine("Button1はクリックされました")
      Me.TestFunction1()
      Me.TestFunction2()
    End Using
  End Sub

  Private Sub TestFunction1()
    'TODO:ここに処理
    If Me._sw IsNot Nothing Then
      Me._sw.WriteLine("TestFunction1は処理されました。")
    End If
  End Sub

  Private Sub TestFunction2()
    'TODO:ここに処理
    If Me._sw IsNot Nothing Then
      Me._sw.WriteLine("TestFunction2は処理されました。")
    End If
  End Sub
End Class

目的とする処理は実現されているのですが、このようなUsingの使い方は問題ないのでしょうか?
どなたかに御回答いただければうれしく思います。よろしくお願いいたします。
環境は下記のような感じです。
 環境IDE:Visual Studio 2005
 言語  :Visual Basic

毎々参考にさせていただいております。
早速ですが質問させていただきます。

あるフォームでボタンが押された時に、下記の3つの処理でログを出力したい場合なのですが。
 a) ボタンが押されたイベント処理
 b) ボタンが押されたイベント処理の中で呼ばれるTestFunction1の中
 c) ボタンが押されたイベント処理の中で呼ばれるTestFunction2の中
複数のメソッドに参照されるということで、StreamWriterのオブジェクトはインスタンスフィールドに宣言しています。

Public Class Test
  'StreamWrite...続きを読む

Aベストアンサー

 StreamWriterやGraphicsなども、Application終了後にガベージコレクターに引っ掛かり、最終的には .Net がメモリを解放するはずなのですが、これらはリソースの消費が激しいので、Application内で何回も作成されることを防ぐために、まめに Usingブロックか、Disposeメソッドでメモリを掃除しろ、というのがMSの推奨です。

 _swは、使い切ってから End Using に達するので、問題ないように思えます。ただ蛇足ですが、_swがNothingでないかどうかだけで、所定の機能が果たせた、という判断は若干疑問です(大きなお世話ですね)。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報