★゜・。。・゜゜・。。・゜☆ 2010年03月19日 ☆゜・。。・゜゜・。。・゜★
【VB】備忘録 3/18
分かっている人には分かりきったことを、
分からない人には分からないことを書いてすみません(^_^;
自分のための備忘録。
★ワークシートの追加削除
・1枚目の右にシートを2枚追加する場合。
・一番右にシートを追加する場合。
・シート削除確認のメッセージを表示せずにシートを削除する場合。
★指定したセルの行番号と列番号を取得する
現在選択中のセルの行番号 = ActiveCell.Row
現在選択中のセルの列番号 = ActiveCell.Column
★セル範囲の指定方法
・Range("A2:C5") ←→ Range(Cells(2,1),Cells(5,3))
・Range("A2:C5,B12:D15") ←→ Union(Range(Cells(2,1),Cells(5,3)),Range(Cells(12,2),Cells(15,4)))
★VBAでユーザーにファイル保存場所(フォルダ)を指定させる方法
★作業用ブックを開く
★ワークブックを閉じる
・自分自身を閉じる
・上書き保存して閉じる
・"abc.xls" を閉じる
・名前をつけて保存して閉じる
★ワークブックのパスを取得
★データの型変換
★ユーザーフォームを任意の位置に表示する
★ブックを開いたときに、自動でユーザーフォームが開かれるようにするには?
分からない人には分からないことを書いてすみません(^_^;
自分のための備忘録。
★ワークシートの追加削除
・1枚目の右にシートを2枚追加する場合。
Worksheets.Add After:=worksheets(1), Count:=2・一番右にシートを追加する場合。
~After:=Worksheets(Sheets.Count)・シート削除確認のメッセージを表示せずにシートを削除する場合。
Application.DisplayAlerts=False ←メッセージを表示させない
Worksheets("Sheet6").Delete
Application.DisplayAlerts=True ← DisplayAlerts の値を True に★指定したセルの行番号と列番号を取得する
現在選択中のセルの行番号 = ActiveCell.Row
現在選択中のセルの列番号 = ActiveCell.Column
★セル範囲の指定方法
・Range("A2:C5") ←→ Range(Cells(2,1),Cells(5,3))
・Range("A2:C5,B12:D15") ←→ Union(Range(Cells(2,1),Cells(5,3)),Range(Cells(12,2),Cells(15,4)))
★VBAでユーザーにファイル保存場所(フォルダ)を指定させる方法
★作業用ブックを開く
まず押さえておきたいポイントは「ブックを開くと、開いたブックがアクティブになる」ということです。ユーザーに内緒でブックを開きたいのに、そのブックが見えてしまってはいけません。そこで、開いたブックが見えないように画面の表示を止めます。内緒のブックを開いたら元のブックをアクティブにしてから画面を更新します。Sub Sample16()
Application.ScreenUpdating = False
Workbooks.Open "D:\Book2.xls"
Workbooks(1).Activate
Application.ScreenUpdating = True
End Sub画面の更新を抑止するのは ScreenUpdating プロパティです。このプロパティもプロシージャが終了すると自動的に True がセットされるのですが、予期せぬトラブルを避けるためにも明示的に True を設定した方がいいでしょう。★ワークブックを閉じる
・自分自身を閉じる
ThisWorkbook.Close・上書き保存して閉じる
ThisWorkbook.Close SaveChanges:=True・"abc.xls" を閉じる
Workbooks("abc.xls").close・名前をつけて保存して閉じる
ActiveWorkbook.Close SaveChanges:=True, Filename:="ファイルのパスとファイル名"★ワークブックのパスを取得
ワークブックがどのフォルダに保存されているかを知る方法です。???.Pathプロパティで知ることができます。なお、このプロパティで取得できるパスはフルパスです。
ちなみに???の部分は、どちらもお馴染みのActiveWorkbookやWorkbooks(n)やThisWorkbookなどのワークブックを表すオブジェクトです。詳しくは、2.1 直接指定する方法や2.2 間接的に指定する方法をどうぞ。
★データの型変換
VBAの世界では、VBA自身がこの「型変換」をある程度自動でやってくれますが、本来はデータ型の違う変数間で値の転記を行なう場合は、「データ型変換関数」を明示する必要があります。
「データ型変換関数」には以下のものがあります。
CBool ブール型(Boolean)へのデータ変換 CByte バイト型(Byte)へのデータ変換 CCur 通貨型(Currency)へのデータ変換 CDate 日付型(Date)へのデータ変換 CDbl 倍精度浮動小数点実数型(Double)へのデータ変換 CInt 整数型(Integer)へのデータ変換 CLng 長整数型(Long)へのデータ変換 CSng 単精度浮動小数点実数型(Single)へのデータ変換 CVar バリアント型(Variant)へのデータ変換 CStr 文字列型(String)へのデータ変換
★ユーザーフォームを任意の位置に表示する
Sub ユーザーフォームを任意の位置に表示する()
With UserForm1
.StartUpPosition = 0 ‘初期表示位置を表す値を指定しない
.Top = 100 ‘上端からの距離を設定する
.Left = 300 ‘左端 〃
.Show ‘表示する
End With
End Sub
★ブックを開いたときに、自動でユーザーフォームが開かれるようにするには?
1.標準モジュールに「Auto_Open()」を書くSub Auto_Open()
UserForm1.Show
End Sub
ブックを開いたと同時に、ユーザーフォーム(UserForm1)が開きました。
2.ThisWorkbook モジュールに「Workbook_Open()」を書くPrivate Sub Workbook_Open()
UserForm1.Show
End Sub
ブックを開いたと同時に、ユーザーフォーム(UserForm1)が開きました。


