Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

VBA

【Excel VBA】エラーメッセージ「引数は省略できません。」

VBA

関数名を変数として使用したときに、このエラーメッセージが出る場合がある。以下は例。 str = Dir("c:\work\work.txt") C言語の使い手には文字型変数でstrという変数は定番だが、Excel VBAでstrとは数値を文字列に変換する関数strと同名であることから、str…

【Excel VBA】文字列の長さをバイト長で得る

VBA

VBAは文字列の処理を、内部ではUnicodeで扱っていることから、全角文字も半角文字も1バイトであり、LenB関数を使用しても「あいうえお」も「Excel」も5が得られてしまう。処理する文字をUnicode以外にしてLenB関数を使用すればよい。 Function lengthB(st As…

【Excel VBA】「コンパイルエラー: 引数は省略できません。」

VBA

実行時にFunction文の行でプログラムが停まり、このエラーメッセージを含むダイアログボックスが表示されたときは、関数の戻り値の代入文のところを調べてみること。例えば等号記号(=)が抜けていないか、など。

【Excel VBA】ブックをSaveAsメソッドで保存する時に同名のブック(ファイル)が存在していたら自動で上書き保存する

VBA

アラートフラグを一時的にFalseにすること。 Application.DisplayAlerts = False ActiveWorkbook.SaveAs filename Application.DisplayAlerts = True これでダイアログボックスでどうするか聞かれることなく、自動で上書き保存される。

【Excel VBA】実行時エラー'1004': このブックを、ほかの開いているブックまたはアドインと同じ名前で保存できません。別の名前を指定するか、または保存する前に開いているブックまたはアドインを閉じてください。

VBA

ワークシートのnameプロパティを使用している時のこのメッセージが出た場合、nameプロパティに代入しようとしている文字列が、空("")である可能性もあることから、確認をすること。

【Excel VBA】実行時エラー'1004': シートの名前をほかのシート、Visual Basicで参照されるオブジェクトライブラリまたはワークシートと同じ名前に変更することはできません。

VBAを実行時にこのエラーメッセージが出た時は、メソッド.Worksheets.Addでブックにワークシートを追加する時に、そのブックに既に存在しているワークシートと同じ名前のワークシートを作成しようとしている可能性がある。 例えばWithステートメントの.name…

【VBA】整数型(Integer)の大きさ

VBA

最近のVisual Basicである2008や2010は、整数型(Integer)の大きさは32ビット(4バイト)。つまり、使用できる範囲が-2,147,483,648~2,147,483,647である符号付きの整数。 だが、Microsoft Excelなどで使用できるVisual Basic for Applications(通称VBA)…

【Excel VBA】実行時エラー'1004':アプリケーション定義またはオブジェクト定義のエラーです。

ExcelのVBAでcellsを使用してセルの値の取得や設定をしているときに,このメッセージが出るときがある.原因はいろいろ考えられるが,単純なミスとして行や桁に0を指定してるときがあるのでそれを確認すること. cellsの引数はエクセルのセルそのままに1から…