過去ログ

                                Page     394
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ブランクになるまでループさせたい  KUMI 02/11/22(金) 13:14
   ┣Re:ブランクになるまでループさせたい  Jaka 02/11/22(金) 13:34
   ┃  ┣Re:ブランクになるまでループさせたい  Jaka 02/11/22(金) 14:37
   ┃  ┗Re:ブランクになるまでループさせたい  KUMI 02/11/22(金) 15:57
   ┃     ┗結果報告、ありがとうございました。  Jaka 02/11/22(金) 17:08
   ┃        ┗手抜き部分。  Jaka 02/11/22(金) 17:13
   ┗Re:ブランクになるまでループさせたい  KUMI 02/11/22(金) 17:48
      ┗Re:ブランクになるまでループさせたい  Jaka 02/11/25(月) 9:33
         ┗Re:ブランクになるまでループさせたい  KUMI 02/11/26(火) 11:10
            ┗本当にごめんなさい。  Jaka 02/11/26(火) 13:02
               ┗Re:本当にごめんなさい。  KUMI 02/11/26(火) 16:39

 ───────────────────────────────────────
 ■題名 : ブランクになるまでループさせたい
 ■名前 : KUMI
 ■日付 : 02/11/22(金) 13:14
 -------------------------------------------------------------------------
   いつも教えていただいてありがとうございます。
初心者なもので解らないことだらけです。

他の場所にあるCSVのシートの中身で、セルがブランクになるまで
データを上から読み込み、現在開いているシートに貼り付けるという
処理を行いたいのです。
ボタンを作成して、そのボタンを押すと、この処理が行われるように
します。

下記を作ってみましたが、うまく動きません。
教えてください。

Sub GOgo()

Dim RETU As Integer ←列
Dim GYO As Integer ←行
Dim NUM As Integer 列と行

'A行の読み込みとcopyループ
Workbooks.Open Filename:= _
    "C:\Personal\TEST.csv"
RETU = 1
GYO = 1

Do

  NUM = Cells(RETU, GYO)

  Cells(RETU, GYO).Select
  Selection.Copy
  Windows("AAA.xls").Activate
  Range("A6").Select
  ActiveSheet.Paste

  GYO = GYO + 1

Loop While NUM = ""


End Sub
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : Jaka  ■日付 : 02/11/22(金) 13:34  -------------------------------------------------------------------------
   こんにちは。

質問の回答とは若干違いますが、
ここ試してみてぇ〜!
コードが長いけど。
ちゃんと張りついているのか知りたいもので..。
(V3に張り付けた物は、なんかメチャクチャになっていた。)
結果、よろしくね!
[#1910]
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : Jaka  ■日付 : 02/11/22(金) 14:37  -------------------------------------------------------------------------
   こんにちは、テストしてないけどこんな具合になるんじゃ。
(マウスが行かれてるんで、触るとイラついてくるんで、マウスも買ってくれません。)
ブック名とシート名は、明確に書いた方が良いです。


Sub GOgo()

Dim RETU As Integer '←列
Dim GYO As (Long '←行
'Integerだと32???を超えるとエラーになるから、行の場合Longの方が安全です。
'両方Longでも良いんだけど..。

'A行の読み込みとcopyループ
Workbooks.Open FileName:= _
    "C:\Personal\TEST.csv"
RETU = 1
GYO = 1

Do
  Workbooks("TEST.csv").Activate
  Cells(RETU, GYO).Copy
  Workbooks("AAA.xls").Activate
  Range("A" & 6 + GYO - 1).Paste
  GYO = GYO + 1
Loop While Workbooks("TEST.csv").Worksheets("TEST").Cells(RETU, GYO).Value = ""

End Sub


こっちもテストしてません。すみません。(動いてくれる事を祈ります。)

Sub nnl()
  Dim AEndRow As Long
  Workbooks.Open FileName:= _
    "C:\Personal\TEST.csv"
  AEndRow Range("A1").End(xlDown).Row
  Range("A1:A" & AEndRow).Copy Workbooks("AAA.xls").Worksheets("Sheet1").Range("A6")
End Sub
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : KUMI  ■日付 : 02/11/22(金) 15:57  -------------------------------------------------------------------------
   Jaka さん,これ、すごいです!かっこいい〜。
しかし・・・書き込みが少しずれて表示されたのと(A6をしていしたのに、B7から書き込みされた)一行しかでてこなかった(私のCSVは2行あった)です。
あと、終了ボックスのところでエラーになりました。
デバックモードになっちゃいます。
でも使えそうです!何かの時に使わせていただきます!


>こんにちは。
>
>質問の回答とは若干違いますが、
>ここ試してみてぇ〜!
>コードが長いけど。
>ちゃんと張りついているのか知りたいもので..。
>(V3に張り付けた物は、なんかメチャクチャになっていた。)
>結果、よろしくね!
>[#1910]
 ───────────────────────────────────────  ■題名 : 結果報告、ありがとうございました。  ■名前 : Jaka  ■日付 : 02/11/22(金) 17:08  -------------------------------------------------------------------------
   >しかし・・・書き込みが少しずれて表示されたのと(A6をしていしたのに、B7から書き込みされた)一行しかでてこなかった(私のCSVは2行あった)です。

本当ですか!
おかしいなぁ?
これは、たぶんCSVファイルの改行が、通常と違っているからだと思うんですけど..。
1度CSVファイルをエクセルで開いて、CSV形式で別名保存したもので試して見て下さい。
一応実際に使っているものを載せたんだけど、ごちゃごちゃしてたんで少し消したせいかなぁ?

>終了ボックスのところでエラーになりました。
これは、フォームを使っていたのを訂正し忘れた性です。
(フォームを使ったのは、表示位置を指定できるから)
一応訂正として、追加してありますんで、そちらを見てください。

テストしてくれて、どうもありがとうございました。
 ───────────────────────────────────────  ■題名 : 手抜き部分。  ■名前 : Jaka  ■日付 : 02/11/22(金) 17:13  -------------------------------------------------------------------------
   シート枚数計算のところにバグがあります、めんどうなんで直してませんです。
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : KUMI  ■日付 : 02/11/22(金) 17:48  -------------------------------------------------------------------------
   Jaka さん、いつもありがとうございます。
行の場合、longですね。勉強になります。
>  Range("A" & 6 + GYO - 1).Paste
の部分で引っかかり、
「オブジェクトはこのプロパティまたはメソッドをサポートしていません」
というメッセージが出てきます。

nnlの方もやってみました!
こちらは、
「sub function propertyが必要です」って出ちゃいます。

▼KUMI さん:
>いつも教えていただいてありがとうございます。
>初心者なもので解らないことだらけです。
>
>他の場所にあるCSVのシートの中身で、セルがブランクになるまで
>データを上から読み込み、現在開いているシートに貼り付けるという
>処理を行いたいのです。
>ボタンを作成して、そのボタンを押すと、この処理が行われるように
>します。
>
>下記を作ってみましたが、うまく動きません。
>教えてください。
>
>Sub GOgo()
>
>Dim RETU As Integer ←列
>Dim GYO As Integer ←行
>Dim NUM As Integer 列と行
>
>'A行の読み込みとcopyループ
>Workbooks.Open Filename:= _
>    "C:\Personal\TEST.csv"
>RETU = 1
>GYO = 1
>
>Do
>
>  NUM = Cells(RETU, GYO)
>
>  Cells(RETU, GYO).Select
>  Selection.Copy
>  Windows("AAA.xls").Activate
>  Range("A6").Select
>  ActiveSheet.Paste
>
>  GYO = GYO + 1
>
>Loop While NUM = ""
>
>
>End Sub
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : Jaka  ■日付 : 02/11/25(月) 9:33  -------------------------------------------------------------------------
   ごめんなさい。

Range("A" & 6 + GYO - 1).Paste

 ↓

Range("A" & 6 + GYO - 1).PasteSpecial


nnlの方

AEndRow = Range("A1").End(xlDown).Row
 ───────────────────────────────────────  ■題名 : Re:ブランクになるまでループさせたい  ■名前 : KUMI  ■日付 : 02/11/26(火) 11:10  -------------------------------------------------------------------------
   Jaka さんありがとうございます。

???
何故でしょう。出来ません。
動くことは動くのですが、データが張り付かないのです。


>ごめんなさい。
>
>Range("A" & 6 + GYO - 1).Paste
>
> ↓
>
>Range("A" & 6 + GYO - 1).PasteSpecial
>
>
>nnlの方
>
>AEndRow = Range("A1").End(xlDown).Row
 ───────────────────────────────────────  ■題名 : 本当にごめんなさい。  ■名前 : Jaka  ■日付 : 02/11/26(火) 13:02  -------------------------------------------------------------------------
   普段 Do Loop While 何か使わないと言うより解りづらいので、使ったことが無いため勘違いしてた事。

Cells(RETU, GYO)の間違いに全く気づかず、そのまんま使ってしまったこと。
Cellsの場合、Rangeの書き方と違って、行が最初にきます。
たとえば
range("A2")
は、
Cells(2,1)
になります。
今度は、ちゃんとテストしました。


Sub GOgo()

Dim RETU As Integer '←列
Dim GYO As Long '←行
'Integerだと32???を超えるとエラーになるから、行の場合Longの方が安全です。
'両方Longでも良いんだけど..。

'A行の読み込みとcopyループ
Workbooks.Open FileName:= _
    "C:\Personal\TEST.csv"
RETU = 1
GYO = 1

Do
  Workbooks("TEST.csv").Activate
  Cells(GYO, RETU).Copy
  Workbooks("AAA.xls").Activate
  Range("A" & 6 + GYO - 1).PasteSpecial
  GYO = GYO + 1
Loop While Workbooks("TEST.csv").Worksheets("TEST").Cells(GYO, RETU).Value <> ""

End Sub
 ───────────────────────────────────────  ■題名 : Re:本当にごめんなさい。  ■名前 : KUMI  ■日付 : 02/11/26(火) 16:39  -------------------------------------------------------------------------
   Jaka さん いつもありがとうございます!

うまくいきました!
Cells と Rangeの違い、勉強になりました!
ありがとうございました。

>普段 Do Loop While 何か使わないと言うより解りづらいので、使ったことが無いため勘違いしてた事。
>
>Cells(RETU, GYO)の間違いに全く気づかず、そのまんま使ってしまったこと。
>Cellsの場合、Rangeの書き方と違って、行が最初にきます。
>たとえば
>range("A2")
>は、
>Cells(2,1)
>になります。
>今度は、ちゃんとテストしました。
>
>
>Sub GOgo()
>
>Dim RETU As Integer '←列
>Dim GYO As Long '←行
>'Integerだと32???を超えるとエラーになるから、行の場合Longの方が安全です。
>'両方Longでも良いんだけど..。
>
>'A行の読み込みとcopyループ
>Workbooks.Open FileName:= _
>    "C:\Personal\TEST.csv"
>RETU = 1
>GYO = 1
>
>Do
>  Workbooks("TEST.csv").Activate
>  Cells(GYO, RETU).Copy
>  Workbooks("AAA.xls").Activate
>  Range("A" & 6 + GYO - 1).PasteSpecial
>  GYO = GYO + 1
>Loop While Workbooks("TEST.csv").Worksheets("TEST").Cells(GYO, RETU).Value <> ""
>
>End Sub
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 394