VBAの初心者です。よろしくお願いします。日付の条件を入れて行を削除したいと考えていますが、エラーになります。何故でしょうか?
コードは以下のようにしています。
よろしくお願いします。
Sub 日付条件で行削除()
Dim hiduke As Double
Set hiduke = "2009/4/30"
  For i = 16 To 12 Step -1
If Cells(i, "a") <= hiduke Then
Rows(i).Delete
End If
Next
End Sub

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

A 回答 (2件)

以下の2つを修正したら、私の環境では、動きましたよ~



(1)Dim hiduke As Double⇒Dim hiduke As Date
 Double型でなくDate型で定義します。

(2)Set hiduke = "2009/4/30"⇒hiduke = "2009/4/30"
 Setは型がObject型の時に使用します。
    • good
    • 0
この回答へのお礼

さっそく回答いただき、ありがとうございました。
やってみたらちゃんと動きました。
もっと勉強します。

お礼日時:2009/05/21 22:44

3行目を次のようにしてください。



hiduke = DateValue("2009/4/30")
    • good
    • 1
この回答へのお礼

さっそく回答いただきありがとうございました。
まだ理由は理解できていないのですが、勉強していきます。

お礼日時:2009/05/21 22:46

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Qカレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。

カレンダーを作成し、特定の日付の上に丸印をつける方法はありますか。
日付の上に丸印を付けると、下の日付の数字が消えてしまいます。

Aベストアンサー

エクセルを使ってのカレンダー作成だと仮定して、NO.1さんの回答の補足をします。

まず「オートシェイプ」の○機能を使って図形を描くと、図形の周囲を囲むように○が表示されますよね。
ここをダブルクリックすると「オートシェイプの書式設定」が出てきます。
その中の「色と線」の塗りつぶし"色"の部分が初期設定の「自動(白)」になっていると思いますが、ここを「塗りつぶしなし」に変更すると下の線や文字が表示されるようになります。

ちなみに、円を描くときにシフトキーを押しながら描くと、楕円ではなく「まん丸」な円を描くことが出来ますよ。

Qエクセル詳しい方!!お願いします! =IF(会計簿!$C$6=”13-ア”,”会計簿!$A$6”,I

エクセル詳しい方!!お願いします!

=IF(会計簿!$C$6=”13-ア”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-イ”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-ウ”,”会計簿!$A$6”,IF(会計簿!$C$6=”13-エ”,”会計簿!$A$6,””))))
の返しが会計簿!$A$6になるのを会計簿!$A$6に入力されている値にしたい!

Aベストアンサー

あらら・・・、今度は絶対参照にしていませんでした ><
=IF(OR(会計簿!$C$6="13-"&{"ア","イ","ウ","エ"}),会計簿!$A$6,"")

これが正解ですね _ノフ○)))グタリ

Q原付の保証書に販売店印と日付が無いんです。

原付を買いましたが保証書に日付と販売店印がありません。
買ったところに電話しました。
『無くても買った日付もわかるし何かあったら直しますよ』とのこと。
田舎の近所のバイク屋のおじいさんです。

原付の保証書に販売店印と日付が無くってもかいませんか?

Aベストアンサー

保障期間を、ある程度過ぎても、保障を伸ばしてもらえると思っても良いと思います。おじさんも「直しますよ」と言ってくれていますし。消耗品は、直してくれませんが。
安くて品数の豊富な大手電気店より街の電気屋さんは、融通が利くと言いますし。
自賠責もその店で加入したなら、領収書とともに、1ヶ月の無料点検もありますし。証拠は、沢山あります。
購入して半年になる私の、バイクにも販売店の印しか捺印していなかったです。(今、確認しました)

Q#If Then ~ #Else ~ #End If(エクセルVBA)

#If Then ~ #Else ~ #End If
って何ですか?
また、VBAのヘルプで検索する方法ってどうすればいいのですか?
どなたか?宜しくお願い致します。

Aベストアンサー

単純にヘルプのコピペです。

> #If Then ~ #Else ~ #End If
式の値に基づいて、条件付きのコンパイルを行います。

ヘルプの使用方法であれば、
VBAのコードを打つ画面で、#Ifの#またはIの後ろで「F1(ファンクション1)」を入力ください。

そうすると、参照先の先が自動的に出てきます。

今更聞きにくいヘルプの使用法ですね・・・。

HLPファイルの時は簡単に検索できたんですけどね。

Qはがきの日付印について

郵便はがきを出すことになりました。

これは、郵便局の日付印をもらうためです。

一般に、確定日付というのだそうですが、日付の証明になるということで利用しようと思いました。ところが、最近は機械化のせいか日付の薄いスタンプがよくあり、できればはっきりした日付印が欲しいのですが、この場合どうしたらいいのでしょうか。

ポストではなく窓口で投函すれば、スタンプははっきり押してもらえるのでしょうか。それとも特別に窓口でお願いすべき、また、お願いできるのでしょうか。

教えてください。

Aベストアンサー

元・郵便局員です。

1.郵便物の集配を行う郵便局の場合
郵便窓口および郵便時間外窓口(ゆうゆう窓口)の営業時間内にお越しいただき、
「この場で、消印を押してください!」
とお申し出いただければ、押印します。

2.郵便物の集配を行わない郵便局の場合
「郵便局長が業務上差し支えないと判断した場合」に限り、その場で押印します。
支障があると判断した場合は、「押印しません」。

上記は、ごく普通の消印の場合です。http://www.geocities.co.jp/Playtown-Domino/5995/phi_gif/049.gif


つぎに、普通でない消印の場合ですが、最初の回答者様の回答にあります「風景スタンプ」(風景入り通信日付印)などの場合は、業務上の支障の有無に関係なく、差し出された郵便局で押印します。なお、全ての郵便局には配備されていないため、差し出し前にご確認ください。

Qエクセルで、=IF(A12="a",TRUE)は =A1="a"  ???

エクセルで、
=IF(A12="a",TRUE)

=A1="a"
と省略できるのですか?

やってみるとまったく同じようなのですが、いまいち不安です。

また、=IF(D4=TRUE,"OK!","No!")も、日頃=IF(D4,"OK!","No!")と略してますが、これも正しいんですよね?
気になったものですから確認させてください。

Aベストアンサー

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽の場合も、

=IF(条件式,真の場合,)

と、引数区切りのカンマだけ付けると、空欄と見なされて(省略とは異なる)数値の「0」を返します。

次に、条件式についてですが、
条件式は、

「左辺」+「比較演算子」+「右辺」

の書式になっているものを指します。
ここで、比較演算子とは、
「=、>、<、>=、<=、<>」
を指します。
条件式は、成立/不成立の結果、TRUE/FALSEという論理値を返します。
つまり、

=A1="a"

は、条件式の戻り値そのものを表示していることになります。
それに対して、IF関数の方は、条件式を判定した結果、真の場合と偽の場合をそれぞれ実行して表示しています。
その真の場合と偽の場合が、条件式の戻り値とちょうど一致しているということです。

さて、IF関数の第1引数は、通常は上記の条件式を指定しますが、実際はIF関数は第1引数を数値として判断しています。
その判定基準は、第1引数が、
0 → 偽の場合を実行
0以外 → 真の場合を実行
となります。
そして、第1引数が条件式の場合に限り、戻り値の論理値を、
TRUE → 1
FALSE → 0
と数値に変換して判定しているのです。
これが、質問欄の後半の2つの数式の挙動の違いの原因なのです。

=IF(D4=TRUE,"OK!","No!")

は、第1引数は「D4=TRUE」という条件式です。
この場合、戻り値は必ずTRUE/FALSE(=1/0)です。
(ただし、D4にエラーが入っている場合を除く)
一方、

=IF(D4,"OK!","No!")

の方は、第1引数は「D4」で、これはセルD4の値そのものです。
で、前述のように、IF関数は第1引数を数値として判定するので、このD4が数値(と論理値)以外の場合(文字列など)はエラーになります。
D4が数値(と論理値)の場合は、前述のように、「0」かそれ以外かで判定され、真/偽の場合のいづれかを実行して表示します。

このIF関数の第1引数が数値として判定されているということを利用した例が以下のようなものです。
例えば、A列に数値が1つでもあれば"OK"、1つもなければ(つまり0)"NG"を表示する場合、意味を考えれば、

=IF(COUNT(A:A)>0,"OK","NG")

ですが、これを、

=IF(COUNT(A:A),"OK","NG")

と、A列の数値の個数(COUNT関数の戻り値)そのもので判定することが出来るわけです。

以上、長くなりましたが、補足説明でした。

こんにちは。maruru01です。

IF関数について、少し補足説明します。
IF関数は、No.1にもあるように、

=IF(条件式,真の場合,偽の場合)

という書式ですが、

=IF(条件式,真の場合)

と、偽の場合を省略することが出来ます。
ここで偽の場合は、FALSEという論理値を返します。
つまり、質問欄の1つ目の例に当たります。
なお、

=IF(条件式)

と、真の場合も省略することは出来ず、

=IF(条件式,,偽の場合)

と、空欄にすると、真の場合は数値の「0」を返すことになります。
ちなみに、偽...続きを読む

Q日付の薄い領収印について

次回の確定申告で医療費控除の手続きをする者です。
通院・入院の領収書をチェックしていたところ、どれも領収印が薄く日付の判別が出来ないことに気付きました。日付印とは別に発行日も印刷されているので、それで判るものもありますが、肝心の高額な入院費の領収書は、支払った1日前の日付で印刷されており、隠すようにその上に収入印紙が貼られていて、なおかつ領収印は読み取れない程薄いです。こんな状態で発行しておいて、「再発行はいたしません」と書かれてあります。来年申告の時期になって『無効』になったりしないか心配です。これで大丈夫でしょうか?
よろしくお願いします。

Aベストアンサー

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額ですね。
それと、医療費控除には、通院等にかかる電車・バス等の公共交通機関による交通費も対象となり、これについては領収書は不要で、メモ書き等で良いので、このような一覧表の一番右等に、かかった交通費を記載している方も結構いらっしゃいますし、そのような表があれば、明らかに違う年とわからない限りは否定もし難い訳ですので、より無難とは思います。
エクセルを使えるようであれば、エクセルで作られても良いと思います。
(もちろん、そのような日ごとの一覧表が必須、という訳ではありませんので、それがなくても認められるとは思いますが)

医療費控除は、その年1月1日~12月31日までに実際に支払ったものが対象となりますので、そもそもは日付が確認できるべきものでなければならないとは思います。

ただ、実際には、ひとつひとつチェックするとは限りませんし、明らかに別の年の領収書でない限りは、薄くて良く見えない程度であれば、そのまま受け付けてもらえるものと思います。

気になるようでしたら、ご自分で別途で、一覧表のようなものを作られたら良いと思います。
医療機関と、治療を受けられた方の名前と、支払った月日と金額で...続きを読む

Qエクセルのマクロ Range("A1").End(xlDown).rowで列を削除

A列の一番下のデータの次の行から
F列の一番下のデータの行まで削除したいのですが
Rows(" & Range("A1").End(xlDown).row+1 & ":" & Range("F1").End(xlDown).Row & ").Delete Shift:=xlUp
でうまくいきません
どうすればいいのですか?

Aベストアンサー

Rows(Range("A1").End(xlDown).Row + 1 & ":" & Range("F1").End(xlDown).Row).Delete Shift:=xlUp
でどうでしょうか。
Rows()内の最初と最後の("&~&")が不用かと…。

ちなみにxlDownだと途中に空欄があった場合、最下行は取得できません。
xlUpを使ったほうがより確実だと思いますよ。

Aend = Cells(Rows.Count, 1).End(xlUp).Row + 1
Fend = Cells(Rows.Count, 6).End(xlUp).Row
If Aend <= Fend Then Rows(Aend & ":" & Fend).Delete Shift:=xlUp

Qワードで日付印の文字が表示されない

電子メールでワードの報告書が送られてきました。
承認欄に3人の日付印(丸くて真ん中に日付、上下に苗字)が貼られているのですが1人の印だけ丸のなかに日付しか入っていませんでした。
印刷プレビューでみても入っていません。
しかし他の人のパソコンで開いたところちゃんと苗字まで入っていました。どのようにしたら私のパソコンでも正しく表示できますか?

Aベストアンサー

No.3のasyuです。
ワードの新規画面に問題の部分を貼り付けした場合はいかがでしょうか?
表示される場合は、フォントキャッシュの破損かもしれません。
パソコンをセーフモードで起動して、何もしないで終了しますと回復すると思います。

ワード自体の不具合が考えられる場合は、こちらを試してみてください。
Word 2007、Word 2003、または Word 2002 の起動時または使用時に発生する問題のトラブルシューティング方法
http://support.microsoft.com/kb/921541/ja

Word 2000 起動時に問題が発生する場合の対処方法
http://support.microsoft.com/default.aspx?scid=kb;ja;880994

QエクセルのIF文で「NOT=」はどう書くのですか?また、>=や<=の場合の書き方を教えてください

タイトルのとおりです

IF文で下記の3つの書き方がわかりません。

NOT=は、<>?
0以外の場合は、A1<>0?

A1が0と同じか、大きい場合は
A1>=0?

なんだか、うまくいきません^^;

よろしくお願いいたします

Aベストアンサー

A1が・・・・・
A1 <> 0  0以外
A1 >= 0  0以上(0を含む)
A1 > 0   0より大きい(0は含まない)
A1 <= 0  0以下(0を含む)
A1 < 0  0未満
A1 = 0  0

=<,=> などの書き方は使えません。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング