Excel2000-2003 VBA 基本手法 [質問Form] TSESTop
入力個所をバック黄色にしている、印刷時にはバックカラーを白地で出力したい。
 「ファイル」「ページ設定」『シート』タブ「白黒印刷」チェック
見積書で顧客名や担当名などを一覧選択で入力しているが、このデータが全ファイルごとに保存されてしまう。
 Sheet入力用と出力用と分け、出力用を新規Bookにコピーしてから新規Bookだけを保存する。 
半角の文字列を全角文字に変換  =JIS(文字列)
全角の文字列を半角文字に変換 =ASC(文字列)
 *「英数字、カタカナ、記号」が対象。「ひらがな」は半角にはならない。
  シート関数をVBEから使うには次のようにする、
 myAc = Application.WorksheetFunction.Asc(Range("D2"))
 Excel2000では、WorksheetFunction.JIS()は使えない。
入力した数字が、数字と文字になり並べ替えがうまくいかない
 書式が標準で少数を入力した場合に発生する場合があり、書式を文字や数字にしてもだめだ。
 StrConv()で全てを文字に変換する。
月末日を計算する
 当月 =DATE(YEAR(D5),MONTH(D5)+1,1)-1 または =EOMONTH(D5,0)
 前月の =DATE(YEAR(D5),MONTH(D5),1)-1
ブックを開く Workbooks.Open FileName:=" "
ブックを閉じる Workbooks.Close ActiveWorkbook.close Workbooks(" ").Close Workbooks(2).Close
ブック保存、確認メッセージなし Workbooks(" ").Close SaveChanges:=True
    保存しない、〃 Workbooks(" ").Close False
上書き保存 ActiveWorkbook.Save Workbooks(" ").Save ActiveWorkbook.SaveAs Filename:=""
ブックをアクティブに  .Activate
シート挿入  Worksheet.Add
 位置と枚数指定  Worksheet.Add After:=Worksheets(2),Count:=3
シートをアクティブに  Worksheets("").Activate Worksheets(2).Activate
シート移動 Worksheets("ws1").Move After:=Worksheets("ws3")
シート複写 Worksheets("ws1").copy Worksheets("ws1").copy After:=Worksheets(2)
 sheet1を新規book作成後にコピー Worksheets(1).Copy
シート削除 Worksheets("ws3").Delete
削除確認をしない Applicarion.DisplayAlerts=False
シート非表示 Worksheets(" ").Visible=False
オブジェクトの連続選択
 例)チェックボックスを連続非表示
 For i = 1 To 20
  ActiveSheet.Shapes.Range(”CheckBox”& i).Visible = False
  '.Delete '.Select
 Next
行の選択
 Worksheets("ws1").Rows(2).Select   範囲指定、Rows("2:8")

行の削除する時は、.Select の所を .Delete
列の選択
 Worksheets("ws1").Columns("C").Select   範囲指定、("C:D")
セルの選択 Range("E2").Select Range("A2:C6"). Range("定義名").  行"2:2"、列"B:B"
        Cells(2,5).Activate  Cells(2,"E").
セルの現在位置
 行= ActiveCell.Row   列= ActiveCell.Column
選択されたセルの範囲の行列数
 行数 = Selection.Rows.Count   列数 = Selection.Columns.Count
セル範囲のサイズを変更する
 Resize( 行,列 ).Select
セルの値    Range("B2").Value=123  ,"12,000", "2001/6/2",
セルの数式 Range("B2").Formula="=A2+B1" ,"=SUM(A2:A9)"
  相対参照 Range("B2").FormulaR1C1="=RC[-1]+R[-1]C"  
セルのコピー/貼付け Selection.Copy ActiveSheet.Paste
              Range().Copy Destination:=Range()  
セルのデータクリア Range("B2").Value=""  ActiveCell.Value=""
アクティブセル領域(空白で囲まれた範囲)
 Range("B2").CurrentRegion.Select *保護Sheetに使えない
 見出し部を指定する方法、 Range("A1").CurrentRegion.Select

For Each...Next 、オブジェクト数を意識しなくて良い
 Dim myRange As Range 'オブジェクト変数、セル範囲
 Dim mySheet As Worksheet 'シート
 For Each myRange In Selection
    If myRange.Value < 30 Then myRange.Interior.ColorIndex = 6
 Next

 For Each myRange In Range("A2:D10")

最終データ行
 Activate.UsedRange.Rows.cunt
 ただし、空行でもデータ行とみなす(空行とは行選択し[Delete]キーを押した。)
最終データ行 Range("A65536").End(xlUp)   列 Range("A2").End(xlRight)
次の行 ActiveCell.Offset(1, 0).Select    列 Offset(0, 1)
ファイルの読込み、保存するフォルダのパス
 Application.DefaultFilePath
 初期値は「My Documents」
コンボBOX リスト項目代入 Cmb1.RowSource = "担当" 、Range("A2:D10")
オートメーション エラー
 Excel2000は、1シートのCheckBox数に制限があり約2000個以上でエラーになる。
 このエラーが発生したら、Excelの再起動しないと動作不安定