Excel VBA質問箱 IV

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

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


9610 / 13646 ツリー ←次へ | 前へ→

【26420】セル ゴリ 05/7/5(火) 12:01 質問[未読]
【26421】Re:セル かみちゃん 05/7/5(火) 12:09 発言[未読]
【26425】Re:セル りん 05/7/5(火) 12:47 回答[未読]
【26427】Re:セル ゴリ 05/7/5(火) 13:06 質問[未読]
【26430】Re:セル Kein 05/7/5(火) 13:59 回答[未読]
【26451】Re:セル かみちゃん 05/7/5(火) 21:02 発言[未読]
【26453】Re:セル Hirofumi 05/7/5(火) 21:32 回答[未読]

【26420】セル
質問  ゴリ  - 05/7/5(火) 12:01 -

引用なし
パスワード
   超初心者でもうしわけないです。

セルを縦にずらしていき、そこに値を入れていきたいんですが
Rangeの指定で、変数は使えないでしょか?

cells(i,5)に、.textがつかえませんでした。

セルをずらしながら、値を入れていく良い方法ないでしょうか?

お願いします。

【26421】Re:セル
発言  かみちゃん  - 05/7/5(火) 12:09 -

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

>セルを縦にずらしていき、そこに値を入れていきたいんですが
>Rangeの指定で、変数は使えないでしょか?

いつもご質問を見ていて思うのですが、まずは、自分でどこまでできているのかお書きになると回答
がつきやすくなると思います。

>cells(i,5)に、.textがつかえませんでした。

Cells(i, 5).Value
のことでしょうか?

>セルをずらしながら、値を入れていく良い方法ないでしょうか?

どういう処理のされ方をお望みなのかわかりませんので、具体的なことが言いにくいです。

【26425】Re:セル
回答  りん E-MAIL  - 05/7/5(火) 12:47 -

引用なし
パスワード
   ゴリ さん、こんにちわ。

>セルを縦にずらしていき、そこに値を入れていきたいんですが
>Rangeの指定で、変数は使えないでしょか?
使えます。

>cells(i,5)に、.textがつかえませんでした。
Range(CellsもRangeオブジェクト)のTextプロパティは値の取得のみ可能なので、値の設定には使えません(VBAヘルプ参照のこと)。

>セルをずらしながら、値を入れていく良い方法ないでしょうか?
かみちゃんさんがおっしゃるとおり、.Valueを使用するのが良いとおもいます。

Sub test()
  Dim II As Long
  For II = 2 To 5
   Cells(II, 5).Value = II
   'Range("E" & II).Value = II でも同じ結果
  Next
End Sub

こんな感じです。

【26427】Re:セル
質問  ゴリ  - 05/7/5(火) 13:06 -

引用なし
パスワード
   >Sub test()
>  Dim II As Long
>  For II = 2 To 5
>   Cells(II, 5).Value = II
>   'Range("E" & II).Value = II でも同じ結果
>  Next
>End Sub
>
>こんな感じです。
  a = 4
  OpenFileName = Application.GetOpenFilename("Microsoft Excelブック,*.xls")
  If OpenFileName <> "False" Then
    Cells("a", 5).Text = OpenFileName
    a = a + 1
  Else
    MsgBox "キャンセルされました。", vbInformation
  End If

OpenFileNameに、ファイルを開くダイアログボックスで選ばしたパスを
セルに載せていきたいです。

【26430】Re:セル
回答  Kein  - 05/7/5(火) 13:59 -

引用なし
パスワード
   あぁ、何となく分かりました。つまりブックを複数選択して、A4から下へ取得した
パスを入力していきたいわけですね ? それなら

Sub Test()
  Dim i As Long
  Dim MyF As Variant
 
  MyF = Application _
  .GetOpenFilename("Excelブック(*.xls),*.xls", , , , True)
  If VarType(MyF) = 11 Then Exit Sub
  For i = LBound(MyF) To UBound(MyF)
   Cells(i + 3, 1).Value = MyF(i)
  Next i
End Sub

ぐらいで出来ると思います。

【26451】Re:セル
発言  かみちゃん  - 05/7/5(火) 21:02 -

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

すでにKeinさんから、コメントがついている方法でできると思いますが、

>    Cells("a", 5).Text = OpenFileName
>    a = a + 1

これでは、変数を使っていることになりません。

Cells("a", 5).Text = 〜
ではなく
Cells(a, 5).Text = 〜
としなければ、いけません。

" "でくくったら、この例だと「a」という文字列になります。

あと、こちらの質問は、どうなったのでしょうか?
http://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=26386;id=excel
投稿者のお名前が一緒なのですが、別の方でしたらご容赦ください。

【26453】Re:セル
回答  Hirofumi  - 05/7/5(火) 21:32 -

引用なし
パスワード
   こんなもで、善いかも?

Option Explicit

Public Sub Sample()

  Dim lngRow As Long
  Dim vntFileNames As Variant

  lngRow = 4

  vntFileNames _
      = Application.GetOpenFilename("Microsoft Excelブック,*.xls", _
          , , , True)
  If VarType(vntFileNames) = vbBoolean Then
    MsgBox "キャンセルされました。", vbInformation
  Else
    Cells(lngRow, 5).Resize(UBound(vntFileNames)).Value _
        = Application.Transpose(vntFileNames)
  End If

End Sub

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