Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12408 / 13645 ツリー ←次へ | 前へ→

【10658】行の削除 カウンター 04/2/5(木) 16:16 質問
【10659】Re:行の削除 Asaki 04/2/5(木) 16:23 回答
【10661】Re:行の削除 カウンター 04/2/5(木) 16:53 質問
【10663】Re:行の削除 Asaki 04/2/5(木) 16:57 回答
【10664】Re:行の削除 カウンター 04/2/5(木) 17:02 質問
【10666】Re:行の削除 Asaki 04/2/5(木) 17:07 回答
【10667】Re:行の削除 カウンター 04/2/5(木) 17:21 質問
【10669】Re:行の削除 Asaki 04/2/5(木) 17:37 回答
【10670】Re:行の削除 Asaki 04/2/5(木) 17:39 回答
【10672】Re:行の削除 カウンター 04/2/5(木) 17:46 質問
【10673】Re:行の削除 Asaki 04/2/5(木) 17:55 回答
【10674】Re:行の削除 カウンター 04/2/5(木) 18:03 お礼

【10658】行の削除
質問  カウンター  - 04/2/5(木) 16:16 -

引用なし
パスワード
   こんにちは。ちょっとお聞きしたいことがあるのですが、
行の削除をするのに下記のコードを書いてみました。
Private Sub cmd_OK_clear_Click()
Dim a As Integer
Dim shname As String
'シートの名前の取得
If TextBox1.Text < 5 Then
MsgBox "5以上の数を入力してください", vbOKOnly + vbExclamation
Exit Sub
End If
shname = ActiveSheet.Name
a = TextBox1.Text
Worksheets(shname).Range("B" & a & " : I" & a).Select
Selection.Delete Shift:=xlUp
Unload frm_clear
End Sub

するとエラーがでてしまいます。VBA初心者なので何がおかしいのかもわかりません。
誰か教えてください。お願いします。

【10659】Re:行の削除
回答  Asaki  - 04/2/5(木) 16:23 -

引用なし
パスワード
   こんにちは。

どの行で、なんというエラーが出ますか?

【10661】Re:行の削除
質問  カウンター  - 04/2/5(木) 16:53 -

引用なし
パスワード
   こんにちは。Asakiさん。お返事ありがとうございます。
今、家計簿を作っていて行の削除をするのに、「クリア」というコマンドボタンをつくり
クリアフォームを呼び出して、そこで何行目を削除するかを入力し、
OKを押すと削除できるようににしたいのですが、押すと

IF(AND(G8=0,H8=0),"",IF(G8>0,#REF!+G8,#REF!-H8))

というエラーがでてしまいます。
I列には差引残高を計算する数式が入っています。
それで先ほどのコードを書いたのですが、数式がおかしくなり
エラーが出てしまいます。何か良い方法はありますでしょうか?

【10663】Re:行の削除
回答  Asaki  - 04/2/5(木) 16:57 -

引用なし
パスワード
   >IF(AND(G8=0,H8=0),"",IF(G8>0,#REF!+G8,#REF!-H8))
>というエラーがでてしまいます。

マクロ自体がエラーになるわけではなく、処理結果の数式がおかしくなる、ということですか。

削除しても問題ないような数式にするしかないですねぇ。。。
可能であれば、シートレイアウト(例)をupされると、他の回答者の方も判りやすいと思います。

【10664】Re:行の削除
質問  カウンター  - 04/2/5(木) 17:02 -

引用なし
パスワード
   そうなんです。数式にエラーがでてしまうんです。
それとUPはできないんです。学生なので勝手なことができないんです。
もうしわけありません。

【10666】Re:行の削除
回答  Asaki  - 04/2/5(木) 17:07 -

引用なし
パスワード
   upできないのは仕方ないですが、少なくとも、
>IF(AND(G8=0,H8=0),"",IF(G8>0,#REF!+G8,#REF!-H8))
が元々どうだったのかとか、どの行のどのセルに何が入っているとかの情報がなければ、回答は出来ません。

【10667】Re:行の削除
質問  カウンター  - 04/2/5(木) 17:21 -

引用なし
パスワード
     B  C  D    E     F   G    H    I   
5 月日 月  科目  摘要   使用者 収入   支出   残高
6 2/1  2  給料 前月繰越分  父  150,000 0    150,000

という感じで、I6の数式には最初、
 IF(AND(G6=0,H6=0),"",IF(G6>0,I5+G6,I5-H6))
と入っています。
削除すると
 IF(AND(G6=0,H6=0),"",IF(G6>0,#REF!+G6,#REF!-H6))
こうなってしまいます。
わかりずらくて申し訳ありません。

【10669】Re:行の削除
回答  Asaki  - 04/2/5(木) 17:37 -

引用なし
パスワード
   >IF(AND(G6=0,H6=0),"",IF(G6>0,I5+G6,I5-H6))
ですが、I5って、"残高"って文字列が入っているのではないのですか?
そもそも、計算できないように思うのですが。

で、行削除した結果が
>IF(AND(G6=0,H6=0),"",IF(G6>0,#REF!+G6,#REF!-H6))
なるとすると、5行目を削除したとしか思えませんが、5行目って、タイトル行なんでは?
これを削除するんですか?

【10670】Re:行の削除
回答  Asaki  - 04/2/5(木) 17:39 -

引用なし
パスワード
   最初の
>If TextBox1.Text < 5 Then
>MsgBox "5以上の数を入力してください", vbOKOnly + vbExclamation
>Exit Sub

の条件を
>If TextBox1.Text < 5 Then

If TextBox1.Text < 6 Then
または
If TextBox1.Text <= 5 Then
ですか?

【10672】Re:行の削除
質問  カウンター  - 04/2/5(木) 17:46 -

引用なし
パスワード
   ごめんなさい!質問間違えてしまいました!
  B  C  D    E     F   G     H    I   
4 月日 月  科目  摘要   使用者 収入    支出   残高
5 2/1 2  給料  前月繰越分  父  150,000  0    150,000
6 2/5 2  車費  ガソリン代  兄  0     5,000  145,000

という感じで、I5の数式には
 =IF((G5-H5)=0,"",(G5-H5))と入っています。
という感じで、I6の数式には最初、
 =IF(AND(G6=0,H6=0),"",IF(G6>0,I5+G6,I5-H6))と入っています
削除すると
 =IF(AND(G6=0,H6=0),"",IF(G6>0,#REF!+G6,#REF!-H6))
こうなってしまいます。
申し訳ありません。

【10673】Re:行の削除
回答  Asaki  - 04/2/5(木) 17:55 -

引用なし
パスワード
   では、I5に下の式を入力して、必要なセルまで下にフィルコピーで如何でしょうか?
=IF(SUM(G$5:G5,-H$5:H5)=0,"",SUM(G$5:G5,-H$5:H5))

#あんまり検証していません。

それからマクロは変更しなくてよさそうですね。

【10674】Re:行の削除
お礼  カウンター  - 04/2/5(木) 18:03 -

引用なし
パスワード
   Asakiさんありがとうございます。
Asakiさんの教えてくださったコードで
できました!本当にありがとうございます!

12408 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free