マクロを使用し、実行させたときにFHフィールドが見つかりません。というエラーが表示されるのですが、これはどういう意味なのですか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

どういうマクロを実行しようとしているのでしょうか?


文面だけをみると マクロの中に
FHという名前のフィールドを操作するマクロがあるにもかかわらず
操作したい実際のテーブルやクエリーなどがないのではないでしょうか?
マクロを見直してみてください。
    • good
    • 0
この回答へのお礼

ありがとうございました。
確認してみます。

お礼日時:2001/06/22 10:21

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

このQ&Aと関連する良く見られている質問

Qマクロ実行時のエラー「エラー番号1004lineStaylの設定ができませんでした」の原因

マクロを実行したらエラーがでます。「エラー番号1004lineStayl(ラインスタイル)の設定ができませんでした」というメッセージが出るのですが、原因は何でしょうか?
お願いします。

Aベストアンサー

検索すると、こちら↓がヒットしましたが...

XL2000: 描画オブジェクトからの削除時の問題の行します。
http://support.microsoft.com/kb/213576/ja
『実行時エラー 1004 LineStyleプロパティを設定できません』
http://www.excel.studio-kazu.jp/kw/20081009194607.html
罫線を引くとエラーが出るが?
http://www.asahi-net.or.jp/~zn3y-ngi/YNxv9582.html

Qマクロで、ひとつのフィールドの内容を複数のフィールドに分ける方法について

いつもお世話になっております。

さっそくで申し訳ありませんがマクロで質問です。
読み込んだデータの内容を、決まったバイト毎でフィールドを分けたいのですがどのようにしたらいいのでしょうか?
わかる方がいましたら、アドバイスをお願いします。

例えば、「123AAAあああああ」と1つのフィールド内のあるものを
別々のフィールドに「12」「AAA」「ああああ」となるようにしたいのですが。
また、それぞれのバイト数は決まったものになっています。

Aベストアンサー

>決まったバイト毎でフィールドを分けたいのですがどのようにしたらいいのでしょうか?
MID関数、或いはMIDB関数がありますが、関数ではダメなのでしょうか?
あえてマクロで使うなら
Sub Macro1()
Range("A2").Value = Mid(Range("A1"), 4, 3)
End Sub
とか
Sub Macro1()
Range("A2").Value = MidB(Range("A1"), 4, 3)
End Sub
とかになりますが。

QACCESSのAutoKeysマクロでアクションの実行エラーが必ず出る

ACCESSのAutoKeysマクロでプロシージャを呼び出しているのですが、
そのVBAコードの中に、条件分岐を作っていて
その返り値がFalseの時だけ以降の処理を継続させようとしています。

ここでTrueの場合は警告メッセージを出した上で
処理を終えるためVBAでEndと記述しているのですが、
このTrueの際にアクションの実行エラーウィンドウが必ず出て
困っています。(格好悪い)

こちらを出ないようにするにはどうしたらいいでしょうか。
もしくはマクロ名で言うAutoKeysのような処理を、マクロを
使わずにVBAだけで記述・実行する方法はありますでしょうか?

長い質問になってしまいましたが、
ご存知のやさしい方ぜひ教えてください。
よろしくお願いします。

Aベストアンサー

VBA では、基本的に「End」は使用しません。
ランタイム環境では、End でエラーが発生します。
他にも、ヘルプに書かれていると思いますが
End はグローバル変数の初期化なども行われますので
以降の処理で、思わぬ結果になったりします。
「Exit Sub」 または 「Exit Function」で抜けるようにしてください。
これでもエラーが発生するようなら
原因は他にあるのでしょう。

QVBA マクロ実行時エラー’1004RangeクラスのPasteSpecialメソッドが失敗

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

*********************************************************
*********************************************************
Sub 日報別ファイルに保存したい1()
Worksheets("日報").Range("A3:AF36").Copy
With Workbooks.Add
Cells.Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells.Select
Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

ApplicationDisplayAlerts = True '同名FILEが存在する場合'
ActiveWorkbook.SaveAs Filename:= _
"c:\日報\" & ActiveSheet.Range("J2") & "年" & ActiveSheet.Range("l2") & "月" & ActiveSheet.Range("n2") & "日_日報.xls" _
, FileFormat:=xlNormal
.Close file


End With

End Sub

マクロ実行時に、エラー’1004RangeクラスのPasteSpecialメソッドが失敗と表記され、マクロが実行されません。

マクロの内容は、任意の範囲をコピー、新規book追加し、
新規bookに(1)Paste:=xlPasteValues (2)Paste:=xlPasteColumnWidths (3)Paste:=xlPasteFormats の順に貼り付けし保存するものです。

いろいろ調べては見たのですが、当方初心者の為、わからずじまいです。お手数ではございますが、どなたかご教授願います。
下記にマクロ内容全部記載します。
よろしくお願いします。

***********...続きを読む

Aベストアンサー

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-------------------------------------------
''もし、そのままでダメでしたら、 ' Application.EnableEvents = False 'イベントの介入を阻止する のところのコメント・ブロック('コードの手前のアポストロフィ)を外して、再度試してみてください。

Sub 日報別ファイルに保存したい2()
Dim myRng As Range
Set myRng = Worksheets("日報").Range("A3:AF36")
 ' Application.EnableEvents = False 'イベントの介入を阻止する

With Workbooks.Add
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteValues, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
  myRng.Copy
 .ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteFormats, _
             Operation:=xlNone, SkipBlanks:=False, Transpose:=False
 
  Application.CutCopyMode = False
 
 ApplicationDisplayAlerts = True '**これは、そのままでは必要ないはずです。'
 
 ActiveWorkbook.SaveAs Filename:="c:\日報\" & ActiveSheet.Range("J2") & "年" & _
                 ActiveSheet.Range("l2") & "月" & _
                 ActiveSheet.Range("n2") & "日_日報.xls", _
                 FileFormat:=xlNormal
 .Close file
End With
Set myRng = Nothing
'Application.EnableEvents = True 'イベントマクロの活動を戻す

End Sub

こんにちは。

>結果、「ThisWorkbook」上の下記のマクロを削除すると、正常に動きだしました。
それは、Copy 範囲が、消えてしまうことで、PasteSpecial が利かなくなってしまうからです。

まず、シート名の長いコードは、これだけでよいはずです。

Private Sub Workbook_Activate()
 Select Case StrConv(Trim(ActiveSheet.Name), vbNarrow)
 Case "1" To "30", "日報"
  Application.Calculation = xlCalculationManual
 End Select
End Sub


-----------------------------------------...続きを読む

Qマクロ実行時のエラー処理について

VBAのエラー処理の方法について教えて下さい。
エクセル2007を使用しています。
VBAでシートの名前を以下のように変更しようとしています。

シート名1 ← "1"
シート名2 ← "2"
シート名3 ← "3"

記述内容は以下の通りです。
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
On Error GoTo Err1
 For i = 1 to 3
  Sheet(i).Name = i  'Sheet(i)の名前を変数"i"に変更する。
Err1:
  Sheet(i).Delete   '上記処理でエラーが発生した場合はそのシートを削除する。
 Next i
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
 以上の処理を実行しようとした場合、同じ名前の既存シートが存在していたり、シート名に含まれてはいけない文字列が含まれていたりした場合、エラーが発生しますが、On Errorステートメントを使用してエラーが発生した場合の処理を実行したいのですが、1回目のエラーについてはOn Errorが働くのですが、2回目になるとOn Errorが働きません。
 2回目以降のエラーも1回目と同様に処理したいのですが、コードの記述の変更方法や又は他の処理方法を教えて下さい。

エラーの種類は以下の通りです。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
実行時エラー'1004':

シートの名前をほかのシート、Visual Basicで参照されるオブジェクト ライブラリまたは
ワークシートを同じ名前に変更することはできません。
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
以上。

尚、On Error Resume Nextは処理を無視するだけなので使用したくありません。

以上、宜しくお願い致します。

VBAのエラー処理の方法について教えて下さい。
エクセル2007を使用しています。
VBAでシートの名前を以下のように変更しようとしています。

シート名1 ← "1"
シート名2 ← "2"
シート名3 ← "3"

記述内容は以下の通りです。
'〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
On Error GoTo Err1
 For i = 1 to 3
  Sheet(i).Name = i  'Sheet(i)の名前を変数"i"に変更する。
Err1:
  Sheet(i).Delete   '上記処理でエラーが発生した場合はそのシートを削除する。
...続きを読む

Aベストアンサー

>尚、On Error Resume Nextは処理を無視するだけなので・・・
あえて使ってみました、如何ですか?
On Error Resume Next
For i = 3 To 1 Step -1
  Sheets(i).Name = i 'Sheet(i)の名前を変数"i"に変更する。
  If Err Then
    Application.DisplayAlerts = False
    Sheets(i).Delete
    Err.Clear
  End If
Next i
Application.DisplayAlerts = True
On Error GoTo 0


このカテゴリの人気Q&Aランキング

おすすめ情報