![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.5ベストアンサー
- 回答日時:
こんばんは。
#3です。Cells(idx, 11) = "1"
Cells(idx + 1, 11) = .Value
Else
Cells(idx, 11) = "1"
の部分を追加されたのだと思いますが、前半の処理は複数の行に対して行わなければならないはずが、1行(とその次の行)にしか行っていませんし、代入している数字がご要望の「1/3」のような記述にもなっていませんね。
後半の部分は「複数でない場合」(=1行だけ)の場合なので、作成なさったように「1」と記述するか、他に合わせて「1/1」とするのかどちらでしょうか?
さらに、エクセル特有のセルの書式というものも考慮しなければなりません。分数表記という書式がありますからそれを利用するか、文字列にするか・・・前者だと1/1という表記がうまくいかないですし、後者の場合、書式設定を文字列に指定しないでうっかり入れると、数字や日付として判断されちゃったりします。
とりあえず、その部分だけの例です。
For tmp = 1 To .Value '複製した行数回番号を入れる
'番号は "'"+順番+"/"+総数 (Str()は数字を文字化する関数です)
Cells(idx + tmp - 1, 11).Value = "'" & Str(tmp) & "/" & Str(.Value)
Next tmp
Else
Cells(idx, 11).Value = "' 1/ 1" '1枚の場合は固定値
*)1枚は1/1で表記するものとしています。また値は全て文字列で扱うことにしていますが、セルの書式を設定するのが面倒なので、'1/3のような文字列入力でまかなっています。
なお、tmpという変数が増えてしまいましたので、最初にDimで宣言しておく方が良いでしょう。(IntegerまたはLong)
出来ました!思いどおりのものになりました!!
以前の質問のご回答のおかげで作業効率が大変良くなったのに
私の作った宛先シールを貼る部署の方から、
今回のような要望を受け、最悪自分が出来なければ
また以前のようにコピペを繰り返すしかないと落胆していました。
これ以上要望がないかを確かめた後お礼を申し上げたいと思い、
お礼内容に時間がかかってしまってすみませんでした。
完璧に完成しました。
そして、コード内容が理解出来たことがなにより嬉しいです。
私が理解出来る様にして下さった事も含めて
本当に御指導どうもありがとうございました。
No.4
- 回答日時:
>2行目のデータが3枚必要ならば、3行ペーストする方法。
』どの列に3行とか、繰り返す回数は入っているのかな。
前の質問と関連すすなら、この質問にも、前の質問番号を書くこと。回答者に載せてもらって読者はわかるというのはおかしい。
ーー
それに書式等が移らないが、初心者は特に、Copy方ではなく、1行ずつ上行からの代入処理の方法を勧める。
例データ
A列 B列 C列(重複回数)
ax3
by2
cz1
du4
C列に重複行数指定とする。
コード
Sub test01()
d = Range("A65536").End(xlUp).Row
For i = d To 1 Step -1 '下行から処理がミソ
k = Cells(i, "C") 'C列から重複回数取得
For l = i + 1 To i + 1 + k - 1 - 1 '重複回数-1回だけ繰り返し
Rows(l).EntireRow.Insert '行挿入
For j = 1 To 2 'A-B列代入
Cells(l, j) = Cells(i, j)
Next j
Next l
Next i
End Sub
ーーー
結果
ax3
ax
ax
by2
by
cz1
du4
du
du
du
前回の質問番号をNo.1の方に載せていただきまして、
有難う御座いました。(本来ならば、No.1の方のお礼内容に書くべき
ところをすみません。)おっしゃるとおりで恥ずかしかったです。
そして、コードも教えて下さって有難う御座いました。
No.3
- 回答日時:
勉強中ということでしたので、ヒントのみです。
Rows(idx + 1).Resize(.Value - 1).Insert shift:=xlDown
でF列の数字分(.Value)の行の挿入をしています。
(1行は最初にあるので、実際は.Value-1行を挿入している)
この時に(この後に)、挿入された行のK列に
行数番号(1~.Value)+"/"+全体行数(.Value)
という文字列を入れてゆけばよいでしょう。
(数字を+演算しても文字の連結になりませんのでご注意)
御指導ありがとうございます。
早速取り組んでみたのですが、
いきづまってしまって出来ませんでした。
本当に恐縮ですが、解答を教えて頂きたく御願い申し上げます。
現状のコードを貼り付けてみました。どうぞ宜しくお願いします。
Sub Macro1()
Dim idx As Integer
ActiveSheet.Copy after:=ActiveSheet
For idx = Range("A65536").End(xlUp).Row To 1 Step -1
With Cells(idx, "F")
If IsNumeric(.Value) Then
If .Value > 1 Then
Rows(idx).Copy
Rows(idx + 1).Resize(.Value - 1).Insert shift:=xlDown
Cells(idx, 11) = "1"
Cells(idx + 1, 11) = .Value
Else
Cells(idx, 11) = "1"
End If
End If
End With
Next idx
Application.CutCopyMode = False
End Sub
No.2
- 回答日時:
(1)、Sheet1のA2:J2を選択コピー
(2)、Sheet2のA1:A3に貼り付け
(3)、K1に、'1/ と入力
(4)、K3までフィルコピー(選択枠の右下角の■をドラッグする)
(5)、選択状態のまま、「置換」で、/ を /3 に「すべて置換」
といった手順を「マクロの記録」すれば必要なサンプルコードが得られます。
得られたコードを基にして
貼り付け行数の取得と反映
貼り付け先の決定
コピー&ペーストの繰り返し処理
等を加味すれば良いと思います。
No.1
- 回答日時:
>先日した質問
エクセルVBAで、行コピーを複数行にペーストする方法
http://okwave.jp/qa4373943.html
>K列に『1/3、2/3、3/3』と
何に対して1/3とか2/3・3/3と決まっているのでしょう?
この回答への補足
分母が総枚数で、分子がページ数とし、
ひとつの顧客に対して3枚(3行)なら、3を分母とする。
という感じです。変な書き方をしてすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) エクセルVBAで複数のシート印刷設定 1 2022/09/07 12:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Access(アクセス) Accessのクエリの結果を、既存のエクセルに追加したい 2 2022/07/31 22:44
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Word(ワード) 差し込み印刷 4 2022/07/19 20:51
- Visual Basic(VBA) Excel vbaについて知恵もしくは、コード教えて下さいm(__)m ① 表にあるデータをコピー、 2 2022/09/01 23:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
オートフィルタ後のデータから...
-
Excelで並び替え後にア行...
-
EXCELで日付を比べ3か月以内の...
-
列と行の名前(重複あり)が交...
-
エクセルの時刻のカウントが出...
-
VBA 複数行の検索及び抽出
-
【Excel VBA】指定した行の最大...
-
基準日以前のデータを範囲を指...
-
文字列を比較し、相違するフォ...
-
【Excel】数式の参照範囲を可変...
-
複数回答のクロス集計の方法
-
EXCEL 最終行のデータを他のセ...
-
マクロで行の高さを設定したい
-
入力したデータのエラーチェッ...
-
エクセルで2つの郵便番号を比較...
-
続質問 エクセルVBAで、行コピ...
-
急ぎ!色のついたセルを非表示...
-
エクセル関数のSUMPRODUCTにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel2017 フィルタ昇順並びがA...
-
エクセルで行の高さ及び列幅の...
-
【Excel VBA】指定した行の最大...
-
Excelで並び替え後にア行...
-
急ぎ!色のついたセルを非表示...
-
エクセルの時刻のカウントが出...
-
オートフィルタ後のデータから...
-
基準日以前のデータを範囲を指...
-
EXCEL 最終行のデータを他のセ...
-
マクロで行の高さを設定したい
-
EXCELで日付を比べ3か月以内の...
-
エクセル関数について
-
文字列を比較し、相違するフォ...
-
エクセル VBA 行間隔を飛ばした...
-
Excel VBAでセルのクリアが出来...
-
【Excel】数式の参照範囲を可変...
-
excel / ピポッド 日数を出したい
-
時間の重複チェック
-
検索条件に合うセルの個数を数...
-
複数回答のクロス集計の方法
おすすめ情報