Excel VBA質問箱 IV

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

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


21680 / 76738 ←次へ | 前へ→

【60448】Re:マクロを組んだ行に、列を挿入してもコードがずれないようにしたい
発言  SS  - 09/2/22(日) 19:55 -

引用なし
パスワード
   ▼ビタミン太郎 さん:

先ず上手く動かなかったのは変数の宣言がされていなかったからだと思います。
MyArrayについては配列で調べてください。
ひとつの案を示しただけで他にもっと良い方法もあると思いますのでこだわる必要は無いと思いますがちょっと書き足してみました。
先ずA1〜T1まで1〜20を、A2〜J2までA〜Jを入力する。
test()を実行するとH2〜T2に記号が出力されます。
次にH2〜T2をクリアした後A〜Hのどこかに列を挿入して
test()を実行してみてください。

Option Explicit

Sub test()
  Dim i As Long
  Dim MyArray(100) As Variant
  
  For i = 1 To Range("IV1").End(xlToLeft).Column
    MyArray(Cells(1, i).Value) = i
  Next i

  For i = 11 To 20
    Cells(2, MyArray(i)).Value = Cells(2, MyArray(i - 10)).Value & _
                    Cells(2, MyArray(i - 10)).Value
  Next i
End Sub

>▼SS さん:
>>先ず一番簡単なのは出力データをAA列からはじめるのをBA列からはじめるように変更することだと思います。入力項目が増えることが予想されるのに入力欄に余裕を残さないのは解せません。
>
>なるほど。その通りだと思いました。拡張性のあるものを作ろうと思いすぎたばかりに入力欄に余裕を持たせるということにまったく気がつくことができませんでした。
>
>>後は1行目にでも項目欄を作りこの項目名で検索して対応すると言うのはいかがですか?
>>たとえば項目名を数字にしておいて
>>  For i = 1 To Range("A1").End(xlToRight).Column
>>    MyArray(Cells(1,i).Value) = i
>>  Next i
>>  Cells(MyRow,MyArray(27)).Value=Cells(MyRow,MyArray(1)).Value * 3
>>
>>※追加した列にはダブらない数字を入力する
>
>上記コードを入力してみたのですが上手くいきませんでした。myarrayは変数という認識でよろしいんでしょうか?
>とりあえずarray関数を調べていけば理解できると思うので頑張ってみます。
>ご回答ありがとうございました。
0 hits

【60436】マクロを組んだ行に、列を挿入してもコードがずれないようにしたい ビタミン太郎 09/2/21(土) 13:39 質問
【60438】Re:マクロを組んだ行に、列を挿入してもコ... neptune 09/2/21(土) 16:59 回答
【60444】Re:マクロを組んだ行に、列を挿入してもコ... ビタミン太郎 09/2/22(日) 2:17 発言
【60446】Re:マクロを組んだ行に、列を挿入してもコ... SS 09/2/22(日) 10:34 発言
【60447】Re:マクロを組んだ行に、列を挿入してもコ... ビタミン太郎 09/2/22(日) 14:42 発言
【60448】Re:マクロを組んだ行に、列を挿入してもコ... SS 09/2/22(日) 19:55 発言
【60449】Re:マクロを組んだ行に、列を挿入してもコ... ビタミン太郎 09/2/22(日) 22:38 お礼
【60455】Re:マクロを組んだ行に、列を挿入してもコ... SS 09/2/23(月) 12:43 発言

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