dポイントプレゼントキャンペーン実施中!

今、社内ツールを作成しているのですが、昨日から質問タイトルのようなエラーが発生しています。
社内ツールなのでソースを全て掲載できないので最初の部分とエラーが発生しているところをフェイクが少し入っていますが掲載いたします。
Dim ws As Worksheet
Dim fname As String
Dim 既定ファイル名 As String
Dim 保存ファイル名 As String
Dim 転記 As Variant

Dim 会社名 As String
Dim 部署 As String
Dim 担当者名 As String

これがソースの最初の部分です。

Dim 備考8 As String
Dim 備考9 As String
Dim 備考10 As String
Dim 項番 As Long

会社名 = Cells(項番, 5).Value
部署 = Cells(項番, 6).Value
担当者名 = Cells(項番, 7).Value
住所1 = Cells(項番, 8).Value
住所2 = Cells(項番, 9).Value

これがエラー発生付近です。
会社名 = からエラーが発生しています。

ちなみに行う動作は会社名の部分を別シートの決めた所に転記するという動作です。
ステップインを行いましたが、会社名 = の部分で止まります。

A 回答 (1件)

そらひよっこエンジニアさん


こんにちは。

会社名 = Cells(項番, 5).Valueで「アプリケーション定義またはオブジェクト定義でエラーです。」 という原因は…

◆単純に【項番】が0かマイナスになっていると思います。
 項番は「行」を表しているのでもし項番が0なら「Cells(項番, 5)」はセル「E0」となってしまいます。

◆「そらひよっこエンジニアさん」の実力が分かりませんが「デバッグ」で会社名 = Cells(項番, 5).Valueのステートメントで処理を
 止めて項番の値を確かめれば、簡単に分かるかと思います。
 またプログラムを変更後は「会社名 = Cells(項番, 5).Value」をイミディエイト・ウィンドウで試し問題がないか確認できれば
 テストは早く進むと思います。

※分からなければ、エラー個所でブレークし「変数の値の確認」「イミディエイト・ウィンドウでステートメントの確認」を行う
 ことが自分で解決できる近道だと思います。

色々と大変ですが、もっと勉強(命令やテスト方法等)して、品質の良いプログラムを早く作成できるようになって下さい。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!