advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 48857 for A�����������������������... (0.010 sec.)
[[20070702161822]]
#score: 1420
@digest: 0b11d649129495d51a2447a024830719
@id: 31835
@mdate: 2007-07-27T06:07:17Z
@size: 13189
@type: text/plain
#keywords: 製品 (131060), 品27 (29523), 品43 (29523), 品57 (29523), strbreakkey (29523), 品41 (29523), 品37 (29523), 品61 (28223), 品42 (28223), 品32 (28223), 品38 (28021), 品23 (28021), 品58 (27823), 品44 (27823), 品59 (27628), 品34 (27066), 品56 (27066), 品36 (26885), 品24 (26707), 品16 (26707), 品46 (26027), 品28 (26027), 品26 (24940), 品33 (24651), 品19 (24234), 止行 (24099), 入禁 (23706), 品22 (23330), 品45 (22969), 品14 (22075), 品13 (21970), 品35 (21866)
『VBAで、指定範囲内で指定行ごとに空白行を挿入したい 』(としまる)
いつも大変お世話になります。 標題の件にかんしまして、 以下の内容にて指定行ごとに空白行を挿入することは出来るようになったのですが、 指定範囲内のみ有効にする方法がわかりません。 御教授よろしくお願いいたします。 尚、指定範囲補足として、 例えば10行目から1000行までを全範囲指定とかというようにしたいです。 →行指定できると最高! (つまり9行目までは挿入したくないデータがある際に役立てたい。) Sub 挿入() Dim i As Long, a As Long, 設定 As Long 設定 = InputBox("何行毎に入れるか指定してください。", , 2) a = Range("A" & Rows.Count).End(xlUp).Row Mod 設定 - 1 For i = Range("A" & Rows.Count).End(xlUp).Row - a To 設定 Step -設定 Rows(i).Insert Shift:=xlDown Next i End Sub ---- よくわからないけど To 設定 + 10 Step -設定 とかしたらなんか希望に近づくのかしら。 (ご近所PG) ---- 返信遅れました。 (ご近所PG)さんご回答ありがとうございました。 質問を若干変更させていただきます。 (質問が途中から変わり、まことに申し訳ありません。) 24行目までは挿入したくないデータがあり25行目からを挿入対象範囲とし 100行以内の行挿入の繰り返しを実行させるにはどうしたらよろしいでしょうか。 以前ご指導いただいたVBAではうまく実行できません。 ちなみに以前のVBAは以下となります。 Sub 挿入() Dim i As Long, a As Long, 設定 As Long 設定 = InputBox("何行毎に入れるか指定してください。", , 2) a = Range("A" & Rows.Count).End(xlUp).Row Mod 設定 - 1 For i = Range("A" & Rows.Count).End(xlUp).Row - a To 設定 + 25 Step -設定 Rows(i).Insert Shift:=xlDown Next i End Sub ---- 相変わらず私にはよく分からないんだけども、 >例えば10行目から1000行までを全範囲指定とかというようにしたいです。 >→行指定できると最高! 誰が、どのタイミングで設定するの? マクロ書いてる人? 操作してる人? 設定できるとうれしいのは開始行?終了行?両方? >100行以内の行挿入の繰り返しを実行させるにはどうしたらよろしいでしょうか。 100行以内の行の挿入ってどいうこと? 例えば、 既に1行目から100行目までデータが入ってたとします。 これに2行毎に行を挿入した場合、どういう結果になれば良いの? とか。 追記 >以前ご指導いただいたVBAではうまく実行できません。 どんなデータに対して実行して、 その実行結果のどこが「うまく」ないのか提示するとなんか分かるかもね。 (ご近所PG)いまいちイメージ湧かないの。どんな場面で必要なのかも。 ---- 挿入行数も入れようかと思ったけどやんぴ。 多分創造しているだろうものとは違います。(挿入する行数が少ないと思う) BJ Dim myRow As Long, StartRow As Long, EndG As Long StartRow = 20 EndG = 200 ins = 3 For myRow = StartRow To EndG Step ins Rows(myRow).Insert Next ----------------- わかりにくい表現で皆様には大変ご迷惑をおかけしていると思われますが、 もう少し細かく説明します。本当にすみません。 実は20,000行位あるデータをデータベースみたいな形で扱っているのですが、 そのデータは24行目までは挿入したくないデータがあり、 A製品が60行(25行目〜84行目)、 B製品が60行(85行目〜144行目)、 C製品が60行(145行目〜204行目)、 D製品が60行(205行目〜264行目)、 E製品、F製品と続く・・・ というような形となっております。 そこに行を追加したいわけですが、 追加の形としては、上記条件に1行追加なら、 すべての製品に60行おきに1行つかすることになり、 A製品が60行+1行で(25行目〜85行目)、 B製品が60行+1行で(86行目〜146行目)、 C製品が60行+1行で(147行目〜206行目)、 D製品が60行+1行で(207行目〜268行目)、 また、上記条件に12行行追加したい場合は A製品が61行+12行で(25行目〜97行目)、 B製品が61行+12行で(98行目〜170行目)、 C製品が61行+12行で(171行目〜243行目)、 D製品が61行+12行で(244行目〜316行目)、 というようになります。 つまり、各製品群は増えつづける傾向にあるため何行目に何行挿入する? というように操作している人が可変して行挿入を実施したいと考えております。 尚、この12行追加したデータ結果を以下のように添付してみました。 追記 列はB列と同様のデータがCA列まであるものとします。 *見にくくなるので下記データはB列まで添付としました。 A B 1 ★ ★ 2 ★ ★ 3 ★ ★ 4 ★ ★ 5 ★ ★ 6 ★ ★ 7 ★ ★ 8 ★ ★ 9 ★ ★ 10 ★ ★ 11 ★ ★ 12 ★ ★ 13 ★ ★ 14 ★ ★ 15 ★ ★ 16 ★ ★ 17 ★ ★ 18 ★ ★ 19 ★ ★ 20 ★ ★ 21 ★ ★ 22 ★ ★ 23 ★ ★ 24 製品名 データ 25 A製品 1 26 A製品 2 27 A製品 3 28 A製品 4 29 A製品 5 30 A製品 6 31 A製品 7 32 A製品 8 33 A製品 9 34 A製品 10 35 A製品 11 36 A製品 12 37 A製品 13 38 A製品 14 39 A製品 15 40 A製品 16 41 A製品 17 42 A製品 18 43 A製品 19 44 A製品 20 45 A製品 21 46 A製品 22 47 A製品 23 48 A製品 24 49 A製品 25 50 A製品 26 51 A製品 27 52 A製品 28 53 A製品 29 54 A製品 30 55 A製品 31 56 A製品 32 57 A製品 33 58 A製品 34 59 A製品 35 60 A製品 36 61 A製品 37 62 A製品 38 63 A製品 39 64 A製品 40 65 A製品 41 66 A製品 42 67 A製品 43 68 A製品 44 69 A製品 45 70 A製品 46 71 A製品 47 72 A製品 48 73 A製品 49 74 A製品 50 75 A製品 51 76 A製品 52 77 A製品 53 78 A製品 54 79 A製品 55 80 A製品 56 81 A製品 57 82 A製品 58 83 A製品 59 84 A製品 60 85 A製品 61 86 87 88 89 90 91 92 93 94 95 96 97 98 B製品 1 99 B製品 2 100 B製品 3 101 B製品 4 102 B製品 5 103 B製品 6 104 B製品 7 105 B製品 8 106 B製品 9 107 B製品 10 108 B製品 11 109 B製品 12 110 B製品 13 111 B製品 14 112 B製品 15 113 B製品 16 114 B製品 17 115 B製品 18 116 B製品 19 117 B製品 20 118 B製品 21 119 B製品 22 120 B製品 23 121 B製品 24 122 B製品 25 123 B製品 26 124 B製品 27 125 B製品 28 126 B製品 29 127 B製品 30 128 B製品 31 129 B製品 32 130 B製品 33 131 B製品 34 132 B製品 35 133 B製品 36 134 B製品 37 135 B製品 38 136 B製品 39 137 B製品 40 138 B製品 41 139 B製品 42 140 B製品 43 141 B製品 44 142 B製品 45 143 B製品 46 144 B製品 47 145 B製品 48 146 B製品 49 147 B製品 50 148 B製品 51 149 B製品 52 150 B製品 53 151 B製品 54 152 B製品 55 153 B製品 56 154 B製品 57 155 B製品 58 156 B製品 59 157 B製品 60 158 B製品 61 159 160 161 162 163 164 165 166 167 168 169 170 171 C製品 1 172 C製品 2 173 C製品 3 174 C製品 4 175 C製品 5 176 C製品 6 177 C製品 7 178 C製品 8 179 C製品 9 180 C製品 10 181 C製品 11 182 C製品 12 183 C製品 13 184 C製品 14 185 C製品 15 186 C製品 16 187 C製品 17 188 C製品 18 189 C製品 19 190 C製品 20 191 C製品 21 192 C製品 22 193 C製品 23 194 C製品 24 195 C製品 25 196 C製品 26 197 C製品 27 198 C製品 28 199 C製品 29 200 C製品 30 201 C製品 31 202 C製品 32 203 C製品 33 204 C製品 34 205 C製品 35 206 C製品 36 207 C製品 37 208 C製品 38 209 C製品 39 210 C製品 40 211 C製品 41 212 C製品 42 213 C製品 43 214 C製品 44 215 C製品 45 216 C製品 46 217 C製品 47 218 C製品 48 219 C製品 49 220 C製品 50 221 C製品 51 222 C製品 52 223 C製品 53 224 C製品 54 225 C製品 55 226 C製品 56 227 C製品 57 228 C製品 58 229 C製品 59 230 C製品 60 231 C製品 61 232 233 234 235 236 237 238 239 240 241 242 243 244 D製品 1 245 D製品 2 246 D製品 3 247 D製品 4 248 D製品 5 249 D製品 6 250 D製品 7 251 D製品 8 252 D製品 9 253 D製品 10 254 D製品 11 255 D製品 12 256 D製品 13 257 D製品 14 258 D製品 15 259 D製品 16 260 D製品 17 261 D製品 18 262 D製品 19 263 D製品 20 264 D製品 21 265 D製品 22 266 D製品 23 267 D製品 24 268 D製品 25 269 D製品 26 270 D製品 27 271 D製品 28 272 D製品 29 273 D製品 30 274 D製品 31 275 D製品 32 276 D製品 33 277 D製品 34 278 D製品 35 279 D製品 36 280 D製品 37 281 D製品 38 282 D製品 39 283 D製品 40 284 D製品 41 285 D製品 42 286 D製品 43 287 D製品 44 288 D製品 45 289 D製品 46 290 D製品 47 291 D製品 48 292 D製品 49 293 D製品 50 294 D製品 51 295 D製品 52 296 D製品 53 297 D製品 54 298 D製品 55 299 D製品 56 300 D製品 57 301 D製品 58 302 D製品 59 303 D製品 60 304 D製品 61 305 306 307 308 309 310 311 312 313 314 315 316 ---- ちょこっと整形しました。 とりあえずそんだけ。時間なし。 イメージは分かりました。 けど、運用方法の見直しとかは無しなのかな……うーん。 ちなみに >100行以内の行挿入の繰り返しを実行させるにはどうしたらよろしいでしょうか。 これについては、追加行数の上限が100行って事なのかしら? (五斤jp)……みすった (ご近所ぴ)…………orz (ご近所PG) ---- あ、ご近所はんとガチンコした(笑 こんな塩梅でどうでっか? (弥太郎) '----------------------- Sub 行挿入() Dim i As Long, mxrow As Long, result, a_data As Integer, b_data As Integer, n As Integer On Error Resume Next Application.ScreenUpdating = False result = StrConv(InputBox("何行挿入しますか?" & Chr(10) & _ "挿入行数と間隔行数を , で区切って指定してくらはい。"), vbNarrow) If result = "" Then Exit Sub a_data = Split(result, ",")(0) * 1 b_data = Split(result, ",")(1) * 1 mxrow = Range("a" & Rows.Count).End(xlUp).Row For i = 25 + b_data To mxrow + a_data * ((mxrow - 25) ¥ b_data) Step b_data Rows(i + n & ":" & i + n + a_data - 1).Insert n = n + a_data Next i Application.ScreenUpdating = True On Error GoTo 0 End Sub ---- おっと、追加質問しようとしたらもうなんか出てきてた。仕事早いですね。 で、 ちと思ったのが、製品名のブレイクで行を挿入すりゃいいの? と。 それなら行数を指定するよりは、単純なんじゃないかな? と言うか間違いも無いんじゃないかなと。 (ご近所PG)思った ---- >間違いも無いんじゃないかなと さいでんなぁ。これやと間違う可能性大いに有りですわなぁ。 製品別となるとなんとなく面倒・・・(笑 (弥太郎) ---- ちと試し。 バックアップした上で試してみてください。 動作:製品名が切り替わる所に指定行数をInsertする。 Sub test() Const DataStartRow As Integer = 25 Dim i As Long Dim intInsertRowCount As Integer Dim strBreakKey As String strBreakKey = vbNullChar intInsertRowCount = InputBox("追加行数指定", , 2) For i = Range("A" & Rows.Count).End(xlUp).Row To DataStartRow Step -1 If Range("A" & CStr(i)).Value <> strBreakKey Then Rows(CStr(i + 1) & ":" & CStr(i + intInsertRowCount)).Insert strBreakKey = Range("A" & CStr(i)).Value End If Next End Sub 追記:空行は無視する動きを入れると便利かも (ご近所PG)昼飯 ---- 様々なご回答ありがとうございます。 さて、今までのご質問順番にご回答いたします。 1.100行以内の行挿入についての回答 →上記例で製品別データを60行の場合と、追加時61行の場合、追加時73行の場合を例にしましたが、 私は最初まさか100行を超えることはないだろうと思い掲示しましたが、 100行を超えた場合使えなくなるので無視していただけると幸いです。 2.製品別のブレイクの回答→今回すべてのデータを見ていただけないのが残念ですが、 一部製品名の欄に空白がある場合があり、やはり行単位で挿入検討願います。 3.運用について→(弥太郎)様のVBAで以下のような運用にしていただけると幸いです。 3-1マクロを実行すると、何行挿入しますか?ということで挿入行数と間隔行数を , で 区切って指定、を12,61などと入力しますが、,ではなくて/に変更していただきたい。 3-2これはできればでかまいませんが、24行目までは挿入したくない行が存在すると書きましたが 万が一この24行が増減した際も使用していきたいので、 最初に”挿入禁止行は何行ありますが?”という内容をを、"何行挿入しますか?”の前に "何行挿入しますか?”と同じような形で操作者に聞いていただき、 任意の数(24とか)を入力し挿入禁止行を任意に変更できると幸いです。 *本当にお手数だとは思われますがなにとぞよろしくお願いいたします。 ---- ご希望とは違って単なるこう、データの在り方での意見と言うか疑問ですけれども 製品名に空欄がある ってのはデータベース的な扱いをする上でどういう意図があるんだろう? あまり好ましい状態ではないと思うけれども。 人が見やすくするため? 挿入禁止行について 手入力で数値を入力させるより、 「これより上はいじっちゃだめよと」と言う識別のためのセルを設ける方が 良いのではないかしらと思うのだけどどうだろう。 今回例示された物で言えば、 >24 製品名 データ の、A列の"製品名"がユニークであるのならば、 その行より上は処理しないと言ったような。 間隔行数について 人が判断して入力するのだろうけど、それは機械的な判断は出来ないのかしら。 ここを見て、こうなってたら、こう入れる。 と言う感じで。 それを例示できれば、入力するよりはこんぴゅーたさんに判断させたほうが良いと思ってみた。 (ご近所PG)んだけども ---- んだけども、ここはとしまるはんに最適なマクロやないことを認識して貰うしかしょう おまへんなぁ。(笑 でもって、ご要望の件、以下の様にしゅうせぇすればとりあえずご希望に叶うと思われ ます。 3-1先ず/に変更の件ですが、,が3ヶ所ある筈ですからそれを/に書き換えてくらはい。 3-2はApplication.ScreenUpdating = Falseの一行下に limt = Val(StrConv(InputBox("挿入禁止行は何行でっか?"), vbNarrow)) + 1 を挿入し、25と数値を書き込んで有るヶ所が2ヶ所ほどありますから、limtに置き換え ませう。 最後に変数宣言セクションに,をつけてlimt as longとしてくらはい。 いぜうでうまくいく筈ですワ。 (弥太郎) ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200707/20070702161822.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97056 documents and 608292 words.

訪問者:カウンタValid HTML 4.01 Transitional