Excel VBA質問箱 IV

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

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


5784 / 13645 ツリー ←次へ | 前へ→

【48851】隣の列の個数分オートフィルしたい にゃこ 07/5/11(金) 17:38 質問[未読]
【48854】Re:隣の列の個数分オートフィルしたい ウッシ 07/5/11(金) 18:38 発言[未読]
【48856】Re:隣の列の個数分オートフィルしたい Kein 07/5/11(金) 19:21 回答[未読]
【48881】Re:隣の列の個数分オートフィルしたい にゃこ 07/5/14(月) 10:18 お礼[未読]
【48884】Re:隣の列の個数分オートフィルしたい にゃこ 07/5/14(月) 12:49 質問[未読]
【48885】Re:隣の列の個数分オートフィルしたい Jaka 07/5/14(月) 13:14 発言[未読]
【48888】Re:隣の列の個数分オートフィルしたい ウッシ 07/5/14(月) 13:59 発言[未読]
【48889】Re:隣の列の個数分オートフィルしたい Kein 07/5/14(月) 14:19 発言[未読]
【48895】グラフに・・・ にゃこ 07/5/14(月) 15:59 質問[未読]
【48896】Re:グラフに・・・ ウッシ 07/5/14(月) 16:06 発言[未読]
【48898】Re:グラフに・・・ にゃこ 07/5/14(月) 17:46 お礼[未読]

【48851】隣の列の個数分オートフィルしたい
質問  にゃこ  - 07/5/11(金) 17:38 -

引用なし
パスワード
   どなたか教えていただきたいのですが。
A列にA1からAnまで複数個データがあるとき、B1に"b1"と入力して、それをA列のデータの個数分オートフィルさせたいのですが、どのように書いたらいいのでしょうか?
よろしくお願いします。

【48854】Re:隣の列の個数分オートフィルしたい
発言  ウッシ  - 07/5/11(金) 18:38 -

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

「"=B1"」ではないですよね?
循環参照になってしまいます。

「B1」として、

Sub test()
  With Range("A1", Range("A65536").End(xlUp)).Offset(, 1)
    .Formula = "=""B""&ROW()"
    .Value = .Value
  End With
End Sub

【48856】Re:隣の列の個数分オートフィルしたい
回答  Kein  - 07/5/11(金) 19:21 -

引用なし
パスワード
   同じく数式を入力するコードですが。

Sub test2()
  With Range("A1", Range("A65536").End(xlUp)).Offset(, 1)
   .Formula = "=ADDRESS(ROW(),2,4,TRUE)"
   .Value = .Value
  End With
End Sub

【48881】Re:隣の列の個数分オートフィルしたい
お礼  にゃこ  - 07/5/14(月) 10:18 -

引用なし
パスワード
   ウッシさん、keinさん、ありがとうございました。
なんだかVBAが面白くなってきました。
もっと勉強してみようと思います。

【48884】Re:隣の列の個数分オートフィルしたい
質問  にゃこ  - 07/5/14(月) 12:49 -

引用なし
パスワード
   続けての質問ごめんなさい。

教えていただいた内容をもとに、横向きで試してみたのですが、とりあえず思うように動いたのですが、正しいのかどうか不安でして...
見ていただいてよろしいでしょうか。

A2から?2までの行にデータが入力されている時、A1から?1まで、"a1"から連番を記入したい、という内容です。

Sub てす()
  
  Range("A2").Select
  ActiveCell.FormulaR1C1 = "a1"
  Selection.AutoFill Destination:=Range("A2",Range("IV2").End(xlToLeft)).Offset(-1, 0), _
  Type:=xlFillDefault

End Sub

これだと、前に教えていただいた「.Value = .Value」というのが無いのですが、これは必要なんでしょうか?

どうかよろしくお願いします。

【48885】Re:隣の列の個数分オートフィルしたい
発言  Jaka  - 07/5/14(月) 13:14 -

引用なし
パスワード
   >これだと、前に教えていただいた「.Value = .Value」というのが無いのですが、これは必要なんでしょうか?
.Value = .Value は、
エクセル関数をいれて、それをコピー値だけペースト見たいな事をしているだけです。(ちょっと違うけど)
私なら、連番ならにゃこさんがかかれた方法を使います。
これの方が断然速いです。
Selection.AutoFill Destination

>Sub てす()
>  Range("A2").Select
      ↑A1の間違いじゃないですか?
>  ActiveCell.FormulaR1C1 = "a1"

ちょっと、まとめると
With Range("a1")
  .Value = "a1"
  .AutoFill Destination:=Range("A2", Range("IV2").End(xlToLeft)).Offset(-1, 0), _
    Type:=xlFillDefault
End With

【48888】Re:隣の列の個数分オートフィルしたい
発言  ウッシ  - 07/5/14(月) 13:59 -

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

本当に連番なんですね。
単なる例かと思ってました。連番なら「AutoFill」でいいですね。

「.Value = .Value」は数式を値に代えてるので「AutoFill」の場合は不要です。

ただ単純な連番以外の処理では数式をセットし「.Value = .Value」する方法はとても有効です。

【48889】Re:隣の列の個数分オートフィルしたい
発言  Kein  - 07/5/14(月) 14:19 -

引用なし
パスワード
   AutoFill が一般的ですが、Dataseries も使えます。

Sub Test()
  Range("A2").Value = "A1"
  Range("A2", Range("IV1").End(xlToLeft).Offset(1)) _
  .DataSeries xlRows, xlAutoFill
End Sub

.Value = .Value というのは「そのセルの中身を数式の結果でなく、値のみにしろ」
・・ぐらいの意味です。Copy して PasteSpecial xlPasteValues した場合と
同じになりますが、記述が簡単で済むのでよく使います。
ただし、コピーに比べてメモリーの消費量が多くなるので、あまり大きいセル範囲
に対しては使わない方が無難です。もっとも今どきのPCの性能なら、殆ど気にする
ほどのことは無いかも知れませんが。

【48895】グラフに・・・
質問  にゃこ  - 07/5/14(月) 15:59 -

引用なし
パスワード
   Jakaさん、ウッシさん、Keinさん、丁寧なご説明ありがとうございました!
すごくよく分かりました!


それから、申し訳ないのですが、最後にあと1つだけ教えていただいてもいいでしょうか?
今までの結果をグラフにしてみようとしてるのですが、うまくいかないです。
下のやり方で、「****」にデータの右下を入れられればいいと思うのですが...

  Charts.Add
  With ActiveChart
  ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
    .SetSourceData Source:=Sheets("nya"). _
     Range("A1:****"), PlotBy:=xlColumns
    .PlotArea.Select
    .Location Where:=xlLocationAsNewSheet
    .PlotArea.Select
    .ChartType = xlXYScatterSmoothNoMarkers
  End With

xlToLeftとxlUpをどうにか組み合わせれば出来るのかもしれませんが、どうにも行き詰ってます。
UsedRangeというのもあるみたいですが難しくて・・・

すみませんがもう1度ご教授お願いします。

【48896】Re:グラフに・・・
発言  ウッシ  - 07/5/14(月) 16:06 -

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

セルA1から
>データの右下
までに空白行、空白列が無ければ、

Source:=Sheets("nya"). _
     Range("A1").CurrentRegion

【48898】Re:グラフに・・・
お礼  にゃこ  - 07/5/14(月) 17:46 -

引用なし
パスワード
   ウッシさんありがとうございます!

CurrentRegionはデータのあるセルを選んでから、その後に付けるんですね。
Rangeのカッコに一緒に入れちゃったりしてましたw

基本の構造をもっとちゃんと覚ないといけないですね。

何度もすみませんでした。
ありがとうございました。

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