Excel VBA質問箱 IV

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

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


8465 / 13644 ツリー ←次へ | 前へ→

【33109】初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 10:12 質問[未読]
【33110】Re:初心者ですお願いします。請求書の発行 よろずや 06/1/3(火) 11:14 発言[未読]
【33117】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 11:58 お礼[未読]
【33111】Re:初心者ですお願いします。請求書の発行 やっちん 06/1/3(火) 11:15 発言[未読]
【33116】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 11:56 発言[未読]
【33112】Re:初心者ですお願いします。請求書の発行 ponpon 06/1/3(火) 11:43 発言[未読]
【33115】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 11:54 質問[未読]
【33118】Re:初心者ですお願いします。請求書の発行 ponpon 06/1/3(火) 12:10 発言[未読]
【33122】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 12:47 発言[未読]
【33123】Re:初心者ですお願いします。請求書の発行 かみちゃん 06/1/3(火) 12:53 発言[未読]
【33125】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 13:04 発言[未読]
【33127】Re:初心者ですお願いします。請求書の発行 かみちゃん 06/1/3(火) 13:11 発言[未読]
【33129】Re:初心者ですお願いします。請求書の発行 ponpon 06/1/3(火) 13:43 発言[未読]
【33150】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 18:19 発言[未読]
【33153】Re:初心者ですお願いします。請求書の発行 かみちゃん 06/1/3(火) 18:24 発言[未読]
【33155】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 19:02 発言[未読]
【33156】Re:初心者ですお願いします。請求書の発行 かみちゃん 06/1/3(火) 19:08 発言[未読]
【33158】Re:初心者ですお願いします。請求書の発行 ponpon 06/1/3(火) 20:05 発言[未読]
【33159】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 20:22 発言[未読]
【33161】Re:初心者ですお願いします。請求書の発行 ponpon 06/1/3(火) 20:42 発言[未読]
【33162】Re:初心者ですお願いします。請求書の発行 sanonobu 06/1/3(火) 20:51 お礼[未読]
【33164】Re:初心者ですお願いします。請求書の発行 かみちゃん 06/1/3(火) 20:56 発言[未読]
【33119】Re:指定された請求書番号のみ印刷する方法 かみちゃん 06/1/3(火) 12:16 回答[未読]
【33124】Re:指定された請求書番号のみ印刷する方法 sanonobu 06/1/3(火) 13:02 発言[未読]
【33126】Re:指定された請求書番号のみ印刷する方法 かみちゃん 06/1/3(火) 13:09 回答[未読]
【33148】Re:指定された請求書番号のみ印刷する方法 sanonobu 06/1/3(火) 18:15 発言[未読]
【33151】Re:指定された請求書番号のみ印刷する方法 かみちゃん 06/1/3(火) 18:19 発言[未読]
【33160】Re:指定された請求書番号のみ印刷する方法 sanonobu 06/1/3(火) 20:26 発言[未読]
【33163】Re:指定された請求書番号のみ印刷する方法 かみちゃん 06/1/3(火) 20:53 発言[未読]

【33109】初心者ですお願いします。請求書の発行
質問  sanonobu  - 06/1/3(火) 10:12 -

引用なし
パスワード
   最初が、わかりにくいのでもう一度作成します。

一つ目のシートに 下のような一覧表を作成してあります。

    A       B    C    D

1  請求書No.   請求先   内訳   金額

2  A001   ああああ  bbbb 500円
3  A002   ええええ  cccc 600円
4  A003   かかかか  ffff 700円
5  A004   ううううう  ttt 800円
6         さささささ rrrr   0円
7  A005   とととと   qqq 900円

二つ目のシートに下のような請求書を作成してあります。


     A        B     C       D       
1  ああああ(請求先)              A001(請求書No.)

3           bbbb(内訳)500円(金額)


請求書No.をデータの入力規則でリストで選択して一覧表から選択すると、

請求先  内訳  金額 が LOOKUP関数で、自動的に変更されるように設定
しました。

ただ一覧表の数が多いと請求書No.での選択が、請求書の印刷が大変になります。

毎月おなじ請求先で無いので、(一覧表の6行目)みたいに今回発行しない場合も
あります

請求書No.で A001(自分で文字入力)から A005(自分で文字入力)までと
指定して、印刷できますでしょうか?

本を買ってみたし、ホームページをみましたが、よくわかりません。よろしくお願いします。

【33110】Re:初心者ですお願いします。請求書の発行
発言  よろずや  - 06/1/3(火) 11:14 -

引用なし
パスワード
   『出来ません』と上司に言いましょう。

プログラミング教室で授業に付いて来られるのは、1割。
自力で出来るようになるのは、さらにその中の1割です。

【33111】Re:初心者ですお願いします。請求書の発行
発言  やっちん  - 06/1/3(火) 11:15 -

引用なし
パスワード
   ▼sanonobu さん:
>本を買ってみたし、ホームページをみましたが、よくわかりません。よろしくお願いします。
揚げ足を取るようで申し訳ないですが
本を買ったり、ホームページを見るだけではわからくて当然です。
動かさなくては。

誰かが作ってくれたとしても修正もできないわけでしょう?
その後どうするんですか?修正も誰かにしてもらうんですか?

最低限、ループと条件分岐、セルの値の取得と設定は覚えておく必要があります。
後はマクロの記録を利用すれば大体のコードはできます。

【33112】Re:初心者ですお願いします。請求書の発行
発言  ponpon  - 06/1/3(火) 11:43 -

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

>請求書No.で A001(自分で文字入力)から A005(自分で文字入力)ま>でと指定して、印刷できますでしょうか?

どこにどんなふうに指定するかわかりませんが・・・
こんなふうにするとできると思います。
後は、iを指定する方法を考えてください。

Sub test()
  Dim i As Integer
   
  With Sheets("Sheet2")
    For i = 1 To 4
     .Range("D1").Value = "A" & Format(i, "000")
     .PrintPreview ’実際は、PrintOut
    Next
  End With
End Sub

【33115】Re:初心者ですお願いします。請求書の発行
質問  sanonobu  - 06/1/3(火) 11:54 -

引用なし
パスワード
   二つ目のシートに下のような請求書を作成してあります。


     A        B     C       D         E   
1  ああああ(請求先)              A001(請求書No.)

3           bbbb(内訳)500円(金額)
4                                    A001
                                      〜

                                     A008
E列にシートに入力する(実際は印刷しない個所です)

そうするとD1の(請求書No.)が自動的にかわるようになってNo.毎1枚1枚印刷できると
助かります。

【33116】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 11:56 -

引用なし
パスワード
   やはり単純なマクロは、なんとなくわかるんですが、やはりむずかしいんですかね?

【33117】Re:初心者ですお願いします。請求書の発行
お礼  sanonobu  - 06/1/3(火) 11:58 -

引用なし
パスワード
   昨日も考えてたんですが、やはりよくわかりませんでした。

地道な作業でやるしかないのでしょうか

【33118】Re:初心者ですお願いします。請求書の発行
発言  ponpon  - 06/1/3(火) 12:10 -

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

Sub test()は、試していただけましたか?

iは数字ですから、印刷したい「請求書No」の数字を指定してやればいいです。

E列の何行目かわかりませんので、たとえば、E5に開始番号とE6に終了番号が
入力されているとして、

Sub test()
  Dim i As Integer
  Dim 開始番号 As Integer
  Dim 終了番号 As Integer
  
  With Sheets("Sheet2")
    開始番号 = .Range("E5").Value
    終了番号 = .Range("E6").Value
    For i = 開始番号 To 終了番号
     .Range("D1").Value = "A" & Format(i, "000")
     .PrintPreview
    Next
  End With
End Sub

【33119】Re:指定された請求書番号のみ印刷する方法
回答  かみちゃん E-MAIL  - 06/1/3(火) 12:16 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>請求書No.で A001(自分で文字入力)から A005(自分で文字入力)までと
>指定して、印刷できますでしょうか?

仕事で同様のことをしていますが、
こんな感じでできると思います。
こちらでサンプルファイルを作って動作確認してあります。
その都度、請求書番号に応じたデータを取得して反映させますので、関数式も一切必要ありません。

Sub Macro1()
 Dim MyR As Range, c As Range, c2 As Range
 
 Sheets("Sheet2").Select
 Set MyR = Range("E4:E8")
' Set MyR = Application.InputBox( _
'  prompt:="印刷したいセルを選択してください。", Type:=8)
 
 For Each c In MyR
  If c.Value <> "" Then
   With Sheets("Sheet1").Columns("A").Cells
    Set c2 = .Find(c.Value, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c2 Is Nothing Then
     With Sheets("Sheet2")
'      Range("D1").Value = c2.Value
'      Range("A1").Value = c2.Offset(, 1).Value
'      Range("B3").Value = c2.Offset(, 2).Value
'      Range("C3").Value = c2.Offset(, 3).Value
      Union(Range("D1"), Range("A1"), Range("B3"), Range("C3")).Value = _
      Array(c2.Value, c2.Offset(, 1).Value, c2.Offset(, 2).Value, c2.Offset(, 3).Value)
     End With
     '〜 ここに印刷処理のマクロを記述 〜
    Else
     MsgBox "請求書番号 " & c.Value & " のデータはありません"
    End If
   End With
  End If
 Next
 MsgBox "印刷終了"
End Sub

>E列にシートに入力する(実際は印刷しない個所です)

こういう大事な情報は、一番最初に書きましょう!
請求書番号は、E4〜E8に記述してあるものとします。

【33122】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 12:47 -

引用なし
パスワード
   うまく動きませんでした。(ノ◇≦。)

請求書No.が  0510(年月です毎月変わります)-001 0510-002      

上の通りに設定してありまして

その辺を変更しましたら コンパイルエラー 構文エラーになってしまいました

【33123】Re:初心者ですお願いします。請求書の発行
発言  かみちゃん E-MAIL  - 06/1/3(火) 12:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>請求書No.が  0510(年月です毎月変わります)-001 0510-002      
>
>上の通りに設定してありまして

ponponさんは、そういうことを前提にコードを書いていません。

>その辺を変更しましたら コンパイルエラー 構文エラーになってしまいました

どのように変更されたか提示してみませんか?

なお、私が提示させていただきました[#33119]は参考になりませんでしたか?

【33124】Re:指定された請求書番号のみ印刷する方法
発言  sanonobu  - 06/1/3(火) 13:02 -

引用なし
パスワード
   ちょっと難しいです。エクセルはもっとリンクされていれ振込口座とかいろいろありましてエクセルの関数は、変更したくないのです。

【33125】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 13:04 -

引用なし
パスワード
   .Range("D1").Value = "A" & Format(i, "000")
           ↑
         ここを0510-と入力してみました。

【33126】Re:指定された請求書番号のみ印刷する方法
回答  かみちゃん E-MAIL  - 06/1/3(火) 13:09 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>ちょっと難しいです。

どこがわからなかったのでしょうか?

>エクセルはもっとリンクされていれ振込口座とかいろいろありまして

そういう情報も最初から書きましょうね。

>エクセルの関数は、変更したくないのです。

機能として合っていなかったかもしれませんが、試してみて、そういうことをおっ
しゃっているのでしょうか?
以下のように変更すれば、期待とおりの結果が得られると思いますけど・・・
請求書(Sheet2)のD1セルの値だけが変わりますので、D1を参照している数式は全部更新されます。
処理速度がどうかな?というのはありますが・・・・

Sub Macro2()
 Dim MyR As Range, c As Range, c2 As Range
 
 Sheets("Sheet2").Select
 Set MyR = Range("E4:E8")
' Set MyR = Application.InputBox( _
'  prompt:="印刷したいセルを選択してください。", Type:=8)
 
 For Each c In MyR
  If c.Value <> "" Then
   With Sheets("Sheet1").Columns("A").Cells
    Set c2 = .Find(c.Value, LookIn:=xlValues, LookAt:=xlWhole)
    If Not c2 Is Nothing Then
     With Sheets("Sheet2")
      .Range("D1").Value = c2.Value
      .PrintPreview '〜 ここに印刷処理 実際は、PrintOut
     End With
     '〜 ここに印刷処理のマクロを記述 〜
    Else
     MsgBox "請求書番号 " & c.Value & " のデータはありません"
    End If
   End With
  End If
 Next
 MsgBox "印刷終了"
End Sub

【33127】Re:初心者ですお願いします。請求書の発行
発言  かみちゃん E-MAIL  - 06/1/3(火) 13:11 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>.Range("D1").Value = "A" & Format(i, "000")
>            ↑
>         ここを0510-と入力してみました。

実際に構文エラーになったコードを提示していただけていないので、よくわかりませんが、

.Range("D1").Value = "0510-" & Format(i, "000")
としていますか?

でも・・・毎月変わる年月は、どのようにして入れるおつもりですか?

【33129】Re:初心者ですお願いします。請求書の発行
発言  ponpon  - 06/1/3(火) 13:43 -

引用なし
パスワード
   こんにちは。
何が何かよくわかりませんが、
請求NOは"0510-001"のように
"請求月‐番号"となっているのですね。

かみちゃん もおっしゃってますが大切な情報がかけていて
「後出しじゃんけん」のようになっています。正確で必要な情報を
伝えてください。こちらは、あなたのシートが見えているわけでは
ありませんから。よろしくお願いします。

E4に"0510"などの月情報(手入力)
E5に"1"、"2"、"3"・・・などの開始番号(手入力)
E6に"1"、"2"、"3"・・・終了番号があるとすれば

Sub test()
  Dim i As Integer
  Dim 開始番号 As Integer
  Dim 終了番号 As Integer
  Dim 請求月  As String
  
  With Sheets("Sheet2")
    請求月 = Range("E4").Value
    開始番号 = .Range("E5").Value
    終了番号 = .Range("E6").Value
    
    For i = 開始番号 To 終了番号
     .Range("D1").Value = 請求月 & "-" & Format(i, "000")
     .PrintPreview
    Next
  End With
End Sub

【33148】Re:指定された請求書番号のみ印刷する方法
発言  sanonobu  - 06/1/3(火) 18:15 -

引用なし
パスワード
   動いてますが、本当に印刷できているか明日にでも試して見ます。

印刷プレビューで止まる方法はありますか?

【33150】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 18:19 -

引用なし
パスワード
   >E4に"0510"などの月情報(手入力)
>E5に"1"、"2"、"3"・・・などの開始番号(手入力)
>E6に"1"、"2"、"3"・・・終了番号があるとすれば

すいません 一つのシートに0510-001と入力されています。

ためしに別けてみましたが


>     .Range("D1").Value = 請求月 & "-" & Format(i, "000")
この個所がエラーになってしまいます。コンパイル エラー

                  構文エラーになってしまいます。

【33151】Re:指定された請求書番号のみ印刷する方法
発言  かみちゃん  - 06/1/3(火) 18:19 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>印刷プレビューで止まる方法はありますか?

.PrintPreview '〜 ここに印刷処理 実際は、PrintOut
という部分を
MsgBox "確認してください。"
とか
Stop
などとするといいかと思います。

【33153】Re:初心者ですお願いします。請求書の発行
発言  かみちゃん  - 06/1/3(火) 18:24 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>一つのシートに0510-001と入力されています。
>
>ためしに別けてみましたが

一つのシートのどこのセルにどのように書いていますか?
ponponさんがご提示されているようにセルには書かないと動きませんよ。
どのように別けたのですか?

>>     .Range("D1").Value = 請求月 & "-" & Format(i, "000")
>この個所がエラーになってしまいます。コンパイル エラー
>
>                  構文エラーになってしまいます。

構文エラーにはならないはずです。
ただ、
請求月 = .Range("E4").Value
と、Rangeの前に「.」をつけないと不具合が出るかもしれません。

【33155】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 19:02 -

引用なし
パスワード
   ▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>一つのシートに0510-001と入力されています。
>>
>>ためしに別けてみましたが
>
>一つのシートのどこのセルにどのように書いていますか?
>ponponさんがご提示されているようにセルには書かないと動きませんよ。
>どのように別けたのですか?
  S列7行に 請求月
  T列7行に −
  U列7行に 開始No.
  U列8行に 終了No.

但し、001と表示したいので 文字列に変更しましたけど・・・

やはり動きません


>
>>>     .Range("D1").Value = 請求月 & "-" & Format(i, "000")
>>この個所がエラーになってしまいます。コンパイル エラー
>>
>>                  構文エラーになってしまいます。
>
>構文エラーにはならないはずです。
>ただ、
>請求月 = .Range("E4").Value
>と、Rangeの前に「.」をつけないと不具合が出るかもしれません。

【33156】Re:初心者ですお願いします。請求書の発行
発言  かみちゃん  - 06/1/3(火) 19:08 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>>>一つのシートに0510-001と入力されています。
>>>
>>>ためしに別けてみましたが
>>
>>一つのシートのどこのセルにどのように書いていますか?
>>ponponさんがご提示されているようにセルには書かないと動きませんよ。
>>どのように別けたのですか?
>  S列7行に 請求月
>  T列7行に −
>  U列7行に 開始No.
>  U列8行に 終了No.
>
>但し、001と表示したいので 文字列に変更しましたけど・・・
>
>やはり動きません

一連のご質問に基づいて、サンプルファイルを作ってあるのですが、どんどん条件
が変わっているような感じがしてなりません。
ponponさんが提示されたコードを修正されているかと思いますが、そのコードが動
かないのであれば、その動かないコードを提示していただけませんか?

【33158】Re:初心者ですお願いします。請求書の発行
発言  ponpon  - 06/1/3(火) 20:05 -

引用なし
パスワード
   こんばんは。
かみちゃん フォローありがとうございます。
.が抜けていましたね。


sanonobuさん

>>  S列7行に 請求月
>>  T列7行に −
>>  U列7行に 開始No.
>>  U列8行に 終了No.

いつこのように仕様が変更になったのでしょうか??

こちらも一応testファイルを作って検証していますので。
かみちゃん も言っていますが、もう一度、正確なシートレイアウトを提示され、
今まで出来ているコードをUPされるのが一番はやいと思いますが・・・

Sub test()
  Dim i As Integer
  Dim 開始番号 As Integer
  Dim 終了番号 As Integer
  Dim 請求月  As String
  
  With Sheets("Sheet2")
    請求月 = .Range("S7").Value
    開始番号 = .Range("U7").Value
    終了番号 = .Range("U8").Value
    
    For i = 開始番号 To 終了番号
     .Range("D1").Value = 請求月 & "-" & Format(i, "000")
     .PrintPreview
    Next
  End With
End Sub

【33159】Re:初心者ですお願いします。請求書の発行
発言  sanonobu  - 06/1/3(火) 20:22 -

引用なし
パスワード
   ▼ponpon さん:
>こんばんは。
>かみちゃん フォローありがとうございます。
>.が抜けていましたね。
>
>
>sanonobuさん
>
>>>  S列7行に 請求月
>>>  T列7行に −
>>>  U列7行に 開始No.
>>>  U列8行に 終了No.
>
>いつこのように仕様が変更になったのでしょうか??


ごめんなさい本当の請求書が大きくて例題として時間がかかるので
配置はこちらで、変更してました。

カンマはつけました やはりエラーがでてまして、

コンパイルエラー

修正候補 ステートメントの最後

とメッセージが出てます。
"-"の個所が色が反転してます。


.Range("D1").Value = 請求月 & "-" & Format(i, "000")
                ↑
            この個所です。

【33160】Re:指定された請求書番号のみ印刷する方法
発言  sanonobu  - 06/1/3(火) 20:26 -

引用なし
パスワード
   '  prompt:="印刷したいセルを選択してください。", Type:=8)
これでセルの選択は出来ましたが請求書番号での範囲選択は無理なのでしょうか

【33161】Re:初心者ですお願いします。請求書の発行
発言  ponpon  - 06/1/3(火) 20:42 -

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

>修正候補 ステートメントの最後
>とメッセージが出てます。
>"-"の個所が色が反転してます。

とエラーが出るのは、
()が抜けているときか、
""が抜けているときか
&の前後が半角スペースになっていないときと思いますが・・・

これ以上は、私にはわかりません。
コードはUP出来ないのですね?

【33162】Re:初心者ですお願いします。請求書の発行
お礼  sanonobu  - 06/1/3(火) 20:51 -

引用なし
パスワード
   プレビューやっと出ましたありがとうございます。

このままやれば請求No.002とか範囲指定すれば出ますよね?


本当に助かります有難うございました。

&の前と後の半角スペースだったみたいです

【33163】Re:指定された請求書番号のみ印刷する方法
発言  かみちゃん  - 06/1/3(火) 20:53 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>'  prompt:="印刷したいセルを選択してください。", Type:=8)
>これでセルの選択は出来ましたが請求書番号での範囲選択は無理なのでしょうか

請求書番号での範囲選択はできます。
すでにponponさんが提示されています。
ただ、どうも動かないとおっしゃっているので、だったら、印刷したい請求書番号
をあらかじめセルに羅列して、その範囲を選択していただければ、コードの書き方
により動作しないのではなく、セルに設定した条件がおかしいだけになるので、
そういうコードを提案しました。

あまりにも、条件がコロコロ変わるので・・・・
一度、仕様(要件)を整理されてはいかがでしょうか?

要件自体は、そんなに難しい問題ではないですよ。

【33164】Re:初心者ですお願いします。請求書の発行
発言  かみちゃん  - 06/1/3(火) 20:56 -

引用なし
パスワード
   こんにちは。かみちゃん です。

>プレビューやっと出ましたありがとうございます。

やっと、動いたようでよかったですね。

>このままやれば請求No.002とか範囲指定すれば出ますよね?

もちろん、できますよ。
ponponさんは、初めから、そういう前提でコードを提示されています。

>&の前と後の半角スペースだったみたいです

ここの回答を書かれる多くの方は、私も含めて、コードを検証して、動いたコード
をVBEからコピーして貼り付けていますので、いちいち打ち直さなくてもいい場合
が多いですので、参考にしてください。

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