Excel


  • エクセル技道場−印刷
  • VBAでのシート比較
  • Excel ブック・テンプレート化する
    • 一般的には、このようなユーザー定義関数は複数のブックで共有することで、より効果的なツールになり得るだろう。
    • そこで本稿では、最後に、ユーザー定義関数を定義したブックを「テンプレート化」しておくことにする。ブック・テンプレートを 利用することで、新規のブックを起動したときにも自動的にテンプレート内で定義されたユーザー定義関数を有効化すること ができる。
    • ブック・テンプレートを作成する方法は簡単だ。メニューバーの[ファイル]−[名前を付けて保存]を選択し、ファイルの種類 を[テンプレート(*.xlt)]、ファイル名を「book.xlt」として、現在のブックを「C:\Program Files\Microsoft Office\Office\XLStart」(Excelのスタートアップ・フォルダ)に保存する。これによって、次の新規ブックの起動から自動的に ユーザー定義関数が利用できるようになる。
    • なお、XLStartフォルダの場所はユーザー環境によって異なる可能性がある。もしも上記の場所にフォルダが存在しなけれ ば、適宜、コンピュータ上のフォルダを検索してみてほしい。
  • VBAでの参照設定
    	Sub addRef()
    	    Dim fullPath As String
    	    fullPath = "C:\Program Files\Microsoft Office\Office\xlstart\PDFWriter.xla"
    	    
    	    With Application.VBE.ActiveVBProject
    	        .References.AddFromFile fullPath
    	    End With
    	End Sub
    	
    	Sub removeRef()
    	    Dim refName As String
    	    refName = "AcrobatPDFWriter"
    	    
    	    With Application.VBE.ActiveVBProject
    	        .References.Remove .References(refName)
    	    End With
    	End Sub
  • 名前の設定は、関数の利用も可能
    	=IF(Sheet1!$D$9=1,Sheet1!$E$9:$E$15,Sheet1!$G$9:$G$15)
    	=SUM(動的エリア)
  • Ctrl+Shift+@ 数式表示オンオフ
  • Alt+; 選択範囲から非表示部分を除く
  • Application.EnableEvents? → イベント検地のオンオフ
  • 入力可能セルのロックを解除し、ワークシートの保護
    	→Tabで、入力可能セルのみを移動可能
  • 検索、置換での改行入力 → Ctrl+J
    	シート名も可能
  • VBAモジュール一括Export/Import
    	Sub testImport()
    	    ThisWorkbook.VBProject.VBComponents.Import ("YieldCurveCells.cls")
    	    ThisWorkbook.VBProject.VBComponents.Import ("DFSSpotPosition.bas")
    	    ThisWorkbook.VBProject.VBComponents.Import ("RetrieverDlg.frm")
    	End Sub
    	Sub testExport()
    	    Dim module_count As Long 'モジュールの個数
    	    Dim i As Long 'For文のカウンタとして使用
    	    
    	    With thisWorkbook.VBProject.VBComponents
    	        module_count = .count
    	        For i = 1 To module_count
    	            Select Case .Item(i).Type
    	                Case 3                                      'ユーザフォームのとき
    	                    .Item(i).Export (.Item(i).name + ".frm")
    	                Case 1                                      '標準モジュールのとき
    	                    .Item(i).Export (.Item(i).name + ".bas")
    	                Case Else                                   'それ以外
    	                    Debug.Print CStr(.Item(i).Type) + ":" + .Item(i).name
    	                    .Item(i).Export (.Item(i).name + ".cls")
    	            End Select
    	        Next
    	    End With
    	End Sub