Excel VBA質問箱 IV

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

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


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

【27978】再度ファイルを開いた時に文字がある事を... 素人 05/8/25(木) 20:31 発言[未読]
【27979】Re:再度ファイルを開いた時に文字がある... ponpon 05/8/25(木) 21:02 発言[未読]
【27981】Re:再度ファイルを開いた時に文字がある... 素人 05/8/25(木) 21:43 発言[未読]
【27985】Re:再度ファイルを開いた時に文字がある... ponpon 05/8/25(木) 22:15 発言[未読]
【28013】Re:再度ファイルを開いた時に文字がある... 素人 05/8/26(金) 14:32 質問[未読]
【28043】Re:再度ファイルを開いた時に文字がある... Hirofumi 05/8/27(土) 8:10 回答[未読]
【28051】Re:再度ファイルを開いた時に文字がある... 素人 05/8/27(土) 14:13 質問[未読]
【28053】Re:再度ファイルを開いた時に文字がある... Hirofumi 05/8/27(土) 16:38 回答[未読]
【28066】Re:再度ファイルを開いた時に文字がある... 素人 05/8/27(土) 20:08 お礼[未読]
【28067】Excelの計算式を教えて下さい。 素人 05/8/27(土) 20:20 質問[未読]
【28068】Re:Excelの計算式を教えて下さい。 かみちゃん 05/8/27(土) 20:33 回答[未読]
【28070】Re:Excelの計算式を教えて下さい。 りん 05/8/27(土) 21:01 発言[未読]
【28071】Re:Excelの計算式を教えて下さい。 かみちゃん 05/8/27(土) 21:18 発言[未読]
【28072】Re:Excelの計算式を教えて下さい。 素人 05/8/27(土) 21:33 お礼[未読]

【27978】再度ファイルを開いた時に文字がある事を...
発言  素人  - 05/8/25(木) 20:31 -

引用なし
パスワード
   下記の様にプログラムを書いているのですが、現在はPosを3と指定している為
再度ファイルを開いた時に、セルの3行目から上書きされるのですが、
上書きされない方法はないでしょうか???

それと現在は下記の様に書き込む内容が増えれば増える程、プログラムも沢山
になっているのですが、他に良い方法があれば教えて下さい。
このままではCelNo100ぐらいまで永遠と書き込まないといけないかと思うと
ゾットしています。

Dim CelNo As String
Dim CelNo1 As String
Dim Pos As Integer

Private Sub userform_Initialize()
  SheetNo = "伝票一覧"
  Pos = 3
  CelNo = "a" & Pos
  CelNo1 = "b" & Pos
  
End Sub

Private Sub OKBtn_Click()

  With Worksheets("伝票一覧")
  .Range(CelNo) = Worksheets("確認表").Range("k5")
  .Range(CelNo1) = Worksheets("確認表").Range("d7")
  
  Pos = Pos + 1
  CelNo = "a" & Pos
  CelNo1 = "b" & Pos
 
  End With
End Sub

よろしくお願いします。

【27979】Re:再度ファイルを開いた時に文字がある...
発言  ponpon  - 05/8/25(木) 21:02 -

引用なし
パスワード
   こんばんは。
やりたいことがよく分からないのですが・・・

ユーザーフォームを使う理由が分かりません。

 With Worksheets("伝票一覧")
  .Range("A3").Value = Worksheets("確認表").Range("k5").Value
  .Range("B3").Value= Worksheets("確認表").Range("d7").Value
 End With
だけで良いような気がしますが、

上記と

>CelNo100ぐらいまで永遠と書き込まないといけないかと思うと

の関係がよく分かりません。

やりたいことを具体的に書けば、回答が付くと思います。
Worksheets("確認表")のK5とD7を
Worksheets("伝票一覧")のどこまで入力するのでしょうか?

【27981】Re:再度ファイルを開いた時に文字がある...
発言  素人  - 05/8/25(木) 21:43 -

引用なし
パスワード
   スイマセン
まず、"確認表"は形式としては伝票になっています。
ユーザーフォームで入力した伝票内容を確認表で確認して
伝票一覧に確認表で入力されたデーターを保存して、そのデーターを
その他のデーター処理に使うつもりです。

【27985】Re:再度ファイルを開いた時に文字がある...
発言  ponpon  - 05/8/25(木) 22:15 -

引用なし
パスワード
   ▼素人 さん:
これでは、まだよくわかりません。

シート"確認表"にユーザーフォームを使って入力
シート"確認表"は、伝票形式

ここまでは、できているんですね。

>伝票一覧に確認表で入力されたデーターを保存して、そのデーターを
>その他のデーター処理に使うつもりです。

シート"確認表"に入力されたデータをシート"伝票一覧"に転記してデータを保存していく。

ならば、シート"確認表"に入力されたどのデータを
シート"伝票一覧"のどこに次々に保存していくのでしょうか?

コードからすると、シート"確認表"のK5をシート"伝票一覧"のA列に
                 D7をシート"伝票一覧"のB列に でしょうか?

保存するデータは、この2つの値だけでしょうか?

それならば、シート"伝票一覧"の1行目に項目があるとして
Sub test()
 With Worksheets("伝票一覧")
  .Range("A65536").End(xlUp).Offset(1, 0).Value = Worksheets("確認表").Range("K5").Value
  .Range("B65536").End(xlUp).Offset(1, 0).Value = Worksheets("確認表").Range("D7").Value
 End With
End Sub
で シート"伝票一覧"に次々に入力できると思います。

シート"確認表"に入力の時に、同時にシート"伝票一覧"に入力することも考えましたが、
入力間違えがあったときに、困りますので、別にした方がよいかと思います。

【28013】Re:再度ファイルを開いた時に文字がある...
質問  素人  - 05/8/26(金) 14:32 -

引用なし
パスワード
   色々アドバイス頂き本当に有難うございます。

>保存するデータは、この2つの値だけでしょうか?

保存するデータは全部で136個で"伝票一覧"セルA〜セルEFまであります。
それに対する"確認表"の元データーは色々なセルに散乱しています。

> With Worksheets("伝票一覧")
>  .Range("A65536").End(xlUp).Offset(1, 0).Value = Worksheets("確認表").Range("K5").Value
>  .Range("B65536").End(xlUp).Offset(1, 0).Value = Worksheets("確認表").Range("D7").Value
> End With

↑はい!試したところ、確かに重複なしに入力できました。
しかし、一つ最後に問題が・・・

"伝票一覧"A1には"確認表"にある[伝票番号]が入力される設定になっているから
これは確実に毎回入力されるのですが、その他で空白であるセルの時もあるので
す。
その場合このプログラムでは空いたセルに入力させるので、そこが困っています。
[伝票番号]が入力されている"伝票一覧"A列に対して同じ行に入力される方法が
あれば、完成しますので、本当に助かります。

ホントに宜しくお願いします。m(_ _)m

【28043】Re:再度ファイルを開いた時に文字がある...
回答  Hirofumi  - 05/8/27(土) 8:10 -

引用なし
パスワード
   こんなのでは?

Option Explicit

Private wksList As Worksheet
Private vntPos As Variant
Private lngRow As Long

Private Sub userform_Initialize()

  '「"確認表"の元データーは色々なセルに散乱しています」
  'のセル位置を順番に列挙
  vntPos = Array("K5", "D7")
  
  Set wksList = Worksheets("伝票一覧")
  With wksList
    '伝票一覧の最終行を取得
    lngRow = .Range("A65536").End(xlUp).Row
    '最終行が3未満なら
    If lngRow < 3 Then
      lngRow = 3
    '最終行が3以上なら+1
    Else
      lngRow = lngRow + 1
    End If
  End With
    
End Sub

Private Sub UserForm_Terminate()

  Set wksList = Nothing
  
End Sub

Private Sub OKBtn_Click()

  Dim i As Long
  
  With Worksheets("確認表")
    'データ位置全てに就いて繰り返し
    For i = 0 To UBound(vntPos)
      'データ位置のデータを順番に転記
      wksList.Cells(lngRow, i + 1).Value _
            = .Range(vntPos(i)).Value
    Next i
  End With
  
  '書き込み行を更新
  lngRow = lngRow + 1
  
End Sub

【28051】Re:再度ファイルを開いた時に文字がある...
質問  素人  - 05/8/27(土) 14:13 -

引用なし
パスワード
   わたしには全く考える事が出来ないようなプログラムを頂き
有難うございます。

早速試してみたのですが、下記の部分でエラー"13"で型が存在しません
と出るのですが、何故なのでしょうか?何もおかしい事
はない気がするのですが・・・

>    'データ位置全てに就いて繰り返し
>    For i = 0 To UBound(vntPos)
>      'データ位置のデータを順番に転記

【28053】Re:再度ファイルを開いた時に文字がある...
回答  Hirofumi  - 05/8/27(土) 16:38 -

引用なし
パスワード
   >早速試してみたのですが、下記の部分でエラー"13"で型が存在しません
>と出るのですが、何故なのでしょうか?何もおかしい事
>はない気がするのですが・・・
>
>>    'データ位置全てに就いて繰り返し
>>    For i = 0 To UBound(vntPos)
>>      'データ位置のデータを順番に転記

このエラーが出るのは、多分、vntPosの変数に配列データが無く、
ただのVariant型の変数として認識されている為と思われます

UserFormの「Private Sub Userform_Initialize()」のイヴェントに
以下のコードが有りますか?

  '「"確認表"の元データーは色々なセルに散乱しています」
  'のセル位置を順番に列挙
  vntPos = Array("K5", "D7")
  
此れが無いと、実行時エラーの13がでるようです

私のUpしたコードを全て記述していますか?
後、多分関係無いと思いますが

本来「Private Sub Userform_Initialize()」と成るのですが、
Upした物が「Private Sub userform_Initialize()」と成って居るので
これも直して下さい

また、其れでも上手く行かない様なら、
素人さんの記述した、UserFormのコードを全文Upして見て下さい

【28066】Re:再度ファイルを開いた時に文字がある...
お礼  素人  - 05/8/27(土) 20:08 -

引用なし
パスワード
   ほんとーにスミマセンでした。

単なる私の入力ミスが原因でした・・・・
悪戦苦闘した今回のプログラムは無事完了しましたし、
すごく手間が省けて本当に助かりました。

有難うございました。

【28067】Excelの計算式を教えて下さい。
質問  素人  - 05/8/27(土) 20:20 -

引用なし
パスワード
   頭の悪い私が再度、壁に当たってます・・・

Excelの計算式で10円単位を繰り下げする計算式を組む事は可能でしょうか?

例 12,875 ⇒ 12,800
   8,999 ⇒  8,900

その2
  100円単位を繰り上げする計算式を教えて下さい。

例 12,875 ⇒ 13,000
   8,999 ⇒  9,000

こんな事は可能なのでしょうか????

頭の良い方是非教えて下さい。

【28068】Re:Excelの計算式を教えて下さい。
回答  かみちゃん  - 05/8/27(土) 20:33 -

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

一般関数で十分できますが、VBAでしたいのでしょうか?

>Excelの計算式で10円単位を繰り下げする計算式を組む事は可能でしょうか?
>
>例 12,875 ⇒ 12,800
>   8,999 ⇒  8,900

=ROUNDDOWN(A1,-2)

>その2
>  100円単位を繰り上げする計算式を教えて下さい。
>
>例 12,875 ⇒ 13,000
>   8,999 ⇒  9,000

=ROUNDDOWN(A1,-3)

でいかがですか?

※新しいご質問は、別のスレッドにされたほうがよろしいかと思います。

【28070】Re:Excelの計算式を教えて下さい。
発言  りん E-MAIL  - 05/8/27(土) 21:01 -

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

>>Excelの計算式で10円単位を繰り下げする計算式を組む事は可能でしょうか?
>=ROUNDDOWN(A1,-2)

>>  100円単位を繰り上げする計算式を教えて下さい。
>=ROUNDDOWN(A1,-3)
こっちは、繰り上げなので、
 =ROUNDUP(A1,-3)
ですね。

【28071】Re:Excelの計算式を教えて下さい。
発言  かみちゃん  - 05/8/27(土) 21:18 -

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

>>>  100円単位を繰り上げする計算式を教えて下さい。
>>=ROUNDDOWN(A1,-3)
>こっちは、繰り上げなので、
> =ROUNDUP(A1,-3)
>ですね。

あっ、ごめんなさい。
あわてて書いたので、ミスしました。
りんさん、フォローありがとうございます。

【28072】Re:Excelの計算式を教えて下さい。
お礼  素人  - 05/8/27(土) 21:33 -

引用なし
パスワード
   皆さん本当に有難うございます!!!

助かりました!


▼かみちゃん さん:
>こんにちは。かみちゃん です。
>
>>>>  100円単位を繰り上げする計算式を教えて下さい。
>>>=ROUNDDOWN(A1,-3)
>>こっちは、繰り上げなので、
>> =ROUNDUP(A1,-3)
>>ですね。
>
>あっ、ごめんなさい。
>あわてて書いたので、ミスしました。
>りんさん、フォローありがとうございます。

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