Excel VBA質問箱 IV

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

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


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

【6861】よろしくお願いします。 仕事で困っています 03/8/8(金) 11:31 質問
【6862】Re:よろしくお願いします。 つん 03/8/8(金) 11:40 回答
【6867】ありがとうございます 仕事で困っています 03/8/8(金) 13:49 お礼
【6869】Re:ありがとうございます INA 03/8/8(金) 13:58 回答
【6871】Re:ありがとうございます 仕事で困っています 03/8/8(金) 14:06 発言
【6875】Re:ありがとうございます INA 03/8/8(金) 14:17 回答
【6876】Re:ありがとうございます INA 03/8/8(金) 14:23 発言
【6877】ありがとうございます 仕事で困っています 03/8/8(金) 14:32 お礼
【6870】Re:ありがとうございます つん 03/8/8(金) 14:04 回答
【6874】Re:ありがとうございます 仕事で困っています 03/8/8(金) 14:14 お礼
【6880】Re:ありがとうございます つん 03/8/8(金) 14:37 回答
【6883】Re:ありがとうございます 仕事で困っています 03/8/8(金) 14:58 お礼
【6885】Re:ありがとうございます Jaka 03/8/8(金) 15:17 発言

【6861】よろしくお願いします。
質問  仕事で困っています E-MAIL  - 03/8/8(金) 11:31 -

引用なし
パスワード
   仕事内容ですが・・・・
データは、日時で大量のデータがEXCELにて送られてきます。
そのデータは日によって、ファイルの多さが違います。(時には100万件超える事も・・・・)
そのEXCELに対して、マクロを作りたいのですが、先程も言ったように、日によって長さが違うので、VBAで「セルの横、セルの縦の長さ(データが何処のセルまで入力されているのか)の範囲を選択する事ができるのでしょうか?」

もし、できるのならば、教えて頂きたいのですが。
よろしくお願いします。

【6862】Re:よろしくお願いします。
回答  つん E-MAIL  - 03/8/8(金) 11:40 -

引用なし
パスワード
   仕事で困っています さん:
こんにちは

>そのEXCELに対して、マクロを作りたいのですが、先程も言ったように、日によって長さが違うので、VBAで「セルの横、セルの縦の長さ(データが何処のセルまで入力されているのか)の範囲を選択する事ができるのでしょうか?」

データのある範囲を取得するのは、CurrentRegionプロパティかなあ?

  MsgBox Range("a1").CurrentRegion.Address

行と列の両方で空白があったら、そこまでの範囲です。
・・・って言ってる意味わかるかな?
詳しくはヘルプを読んで見てください〜

【6867】ありがとうございます
お礼  仕事で困っています E-MAIL  - 03/8/8(金) 13:49 -

引用なし
パスワード
   つんさんご回答ありがとうございます。

Sub セルの範囲指定()
MsgBox Range("a1").CurrentRegion.Address

End Sub

で試してみた所、検索する事ができました!
どうもありがとうございました。

後少し教えて欲しい事があるのですが、ここから続きのプログラムで、
検索されたセルに対して、この後命令を出す事はできるのでしょうか?
例)空白のセルに対して、入力を行えるようにする。
どうかよろしくお願い致します。

【6869】Re:ありがとうございます
回答  INA  - 03/8/8(金) 13:58 -

引用なし
パスワード
   >後少し教えて欲しい事があるのですが、ここから続きのプログラムで、
>検索されたセルに対して、この後命令を出す事はできるのでしょうか?
>例)空白のセルに対して、入力を行えるようにする。
CurrentRegionで連続してデータの入力されている範囲は求まりますが、
CurrentRegionは検索とは違いますよ?
取得できた範囲に対して、何を行いたいのでしょうか?

【6870】Re:ありがとうございます
回答  つん E-MAIL  - 03/8/8(金) 14:04 -

引用なし
パスワード
   どもども

>で試してみた所、検索する事ができました!
>どうもありがとうございました。
良かったです(^o^)

>後少し教えて欲しい事があるのですが、ここから続きのプログラムで、
>検索されたセルに対して、この後命令を出す事はできるのでしょうか?
>例)空白のセルに対して、入力を行えるようにする。
>どうかよろしくお願い致します。

何をどう入力するのかちとわかりませんが、
とりあえず、CurrentRegionで取得した範囲の空白セルに数字を入れてみました。

Sub test()

  Dim rTest As Range
  Dim r As Range
  Dim i As Long
  
  Set rTest = Range("a1").CurrentRegion

  For Each r In rTest.SpecialCells(xlCellTypeBlanks)
    r.Value = i
    i = i + 1
  Next r
  
  Set rTest = Nothing
  
End Sub

こんなんでいいのかな?
SpecialCells(xlCellTypeBlanks)・・これで、空白セルを取得してます。
もしない場合は、これだとエラーになるので、エラー処理が必要ですわ。

【6871】Re:ありがとうございます
発言  仕事で困っています E-MAIL  - 03/8/8(金) 14:06 -

引用なし
パスワード
   ▼INA さん:
>>後少し教えて欲しい事があるのですが、ここから続きのプログラムで、
>>検索されたセルに対して、この後命令を出す事はできるのでしょうか?
>>例)空白のセルに対して、入力を行えるようにする。
>CurrentRegionで連続してデータの入力されている範囲は求まりますが、
>CurrentRegionは検索とは違いますよ?
>取得できた範囲に対して、何を行いたいのでしょうか?
 
INAさんご指摘ありがとうございます。
取得できた範囲に対して選択をしたいのです。
その後、空白セルに対して検索をかけ入力で
きるようにして行きたいのですが・・・・・
漠然とした質問ですいません。

【6874】Re:ありがとうございます
お礼  仕事で困っています E-MAIL  - 03/8/8(金) 14:14 -

引用なし
パスワード
   つんさん殿
わざわざありがとうございます。

Sub test()
 Dim rTest As Range
  Dim r As Range
  Dim i As Long
 
  Set rTest = Range("a1").CurrentRegion

  For Each r In rTest.SpecialCells(xlCellTypeBlanks)
    r.Value = i
    i = i + 1
  Next r
 
  Set rTest = Nothing
 
End Sub

↑を試してみたところ確かに空白セルは数字で入力されました。
ありがとうございます

私が入力したいのは「数字、名前」です。
そして、どう入力したいのかは、一個一個の空白セルに対して
EXCEL上で空白セルのみを順番に入力を行えるようにしたいのですが・・・・
漠然とした内容で申し訳ありません。

【6875】Re:ありがとうございます
回答  INA  - 03/8/8(金) 14:17 -

引用なし
パスワード
   >取得できた範囲に対して選択をしたいのです。
Range("A1").CurrentRegion.Select
これで選択できます。

>その後、空白セルに対して検索をかけ入力で
>きるようにして行きたいのですが・・・・・
>漠然とした質問ですいません。
Private Sub CommandButton1_Click()
Dim x As Variant
Dim EmptyCells

Range("A1").CurrentRegion.Select

For Each x In Range("A1").CurrentRegion

If x.Value = "" Then
   EmptyCells = EmptyCells & "," & x.Address
End If

Next x

  EmptyCells = Mid(EmptyCells, 2)
  Range(EmptyCells).Select
  
End Sub


これで、CurrentRegionの範囲中の空白セルが選択されますので、
TABキーを押せば、セルを移動できます

【6876】Re:ありがとうございます
発言  INA  - 03/8/8(金) 14:23 -

引用なし
パスワード
   >これで、CurrentRegionの範囲中の空白セルが選択されますので、
>TABキーを押せば、セルを移動できます
補足:Enterキーでセル移動しながら、値も入力できます。

【6877】ありがとうございます
お礼  仕事で困っています E-MAIL  - 03/8/8(金) 14:32 -

引用なし
パスワード
   INA殿
ありがとうございました。
下記のプログラムを実行したところ、私のやりたい事が実現できました。
本当にありがとうございました。

>Private Sub CommandButton1_Click()
>Dim x As Variant
>Dim EmptyCells
>
>Range("A1").CurrentRegion.Select
>
>For Each x In Range("A1").CurrentRegion
>
> If x.Value = "" Then
>   EmptyCells = EmptyCells & "," & x.Address
> End If
>
>Next x
>
>  EmptyCells = Mid(EmptyCells, 2)
>  Range(EmptyCells).Select
>  
>End Sub
>
>
>これで、CurrentRegionの範囲中の空白セルが選択されますので、
>TABキーを押せば、セルを移動できます

【6880】Re:ありがとうございます
回答  つん E-MAIL  - 03/8/8(金) 14:37 -

引用なし
パスワード
   うーん、ほんなら、これで・・・

Sub test()

  On Error GoTo ErrHandler
   Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select

  Exit Sub
ErrHandler:

  MsgBox "空白セルがありません"
  
End Sub

空白セルが選択状態になるから、これでエンターとかタブで飛ばしながら入力するとか・・・

他にいい方法あるかなあ?

【6883】Re:ありがとうございます
お礼  仕事で困っています E-MAIL  - 03/8/8(金) 14:58 -

引用なし
パスワード
   つん殿
下記のプログラムを試した所、私の実現したい事ができました!!
またエラーチェックもついており、すごいです!!
本当にありがとうございました。
エンターやタブで飛ばしながら入力する方法もすごいです!
現状ではこれがあれば、かなり時間の短縮ができますので、
どうも長い間付きあって頂きありがとうございました!
またよろしくおねがいします。

>Sub test()
>
>  On Error GoTo ErrHandler
>   Range("a1").CurrentRegion.SpecialCells(xlCellTypeBlanks).Select
>
>  Exit Sub
>ErrHandler:
>
>  MsgBox "空白セルがありません"
>  
>End Sub

【6885】Re:ありがとうございます
発言  Jaka  - 03/8/8(金) 15:17 -

引用なし
パスワード
   つん さん こんにちは。
おひさしぶりです。
別の所に浮気していたと思っていたら...。

>他にいい方法あるかなあ?

使い方にも寄るけど、[#3954]をおり交ぜて見たりとか...。
(結構未完です。)

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