【VB】備忘録 3/18

分かっている人には分かりきったことを、

分からない人には分からないことを書いてすみません(^_^;


自分のための備忘録。

ワークシートの追加削除
・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プロパティで知ることができます。なお、このプロパティで取得できるパスはフルパスです。

ちなみに???の部分は、どちらもお馴染みのActiveWorkbookWorkbooks(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)が開きました。




Filed under: ★Visual Basic  タグ: , , , , , , , , , , , , ,   charlie432 00:00  Comments (0)

【VB】備忘録 3/17

mixi では書いたんですが、先日転職しました。

で、急に Visual Basic を覚える必要に迫られたので、ちょっと忙しくなりました。

そんな訳で、これからしばらくは備忘録が続くかもしれません。

関係ない人にはつまらな~い内容が続くということです、、、(^_^;


ダイアログボックスの利用と応用
MsgBox(表示する文字[, ボタンの種類] [, タイトル名] [, ヘルプファイル, コンテキスト番号])



★キャリッジリターン=chr(13)、ラインフィード=chr(10)
改行コード(広義)は以下の2種類であり、システム(ソフトウェア)により片方または両方が使用される。
・キャリッジリターン(英:Carriage return、CR、復帰)
・ラインフィード(英:Line Feed、LF、狭義の改行)またはニューライン(英:newline、line break or end-of-line、EOL)
これらの用語はタイプライターが由来である。タイプライターでは印字装置は固定され、紙の方が上下左右に移動することで、文字送りや行送りが行われる。英語などの左横書きにおける「キャリッジリターン」とは、紙を固定して移動する装置(キャリッジ)を元の位置に戻す(リターン、つまり紙の左端に印字装置が来る)ことである。「ラインフィード」とは紙を必要な行(ライン)だけ上に送る(フィード、つまり下の行に印字装置が来る)ことである。

コンピュータでは、同じ文字コード(例:ASCII)を使用していても、改行コードは異なる場合があるため、異なるシステム間でのデータのやりとりには注意する必要がある。



ファイルを開くダイアログボックスを使う
GetOpenFilenameメソッドは、実行すると「ファイルを開く」ダイアログボックスが表示され、ユーザーによってファイルが選択されると、そのファイル名をドライブ名を含むフルパスで返してきます。
ダイアログボックスのキャンセルボタンが押された場合は、メソッドはFalseを返してきます。



ワークシート数取得など


★InstrRev関数は、指定した文字を後ろから探して、見つかった(先頭からの)位置を返す関数です
★文字列の左側を抜き出すのはLeft関数、ある位置から後ろを抜き出すにはMid関数を使います
★Dir関数は指定したファイルが存在するとき、そのファイル名を返す





Filed under: ★Visual Basic  タグ: , , , , , ,   charlie432 00:00  Comments (0)
    2012年5月
    « 4月    
     123456
    78910111213
    14151617181920
    21222324252627
    28293031