戻る  □一般操作のサロン  □ 使用方法  □ 新着記事  □ 新規に質問する!  □ トピック一覧  □ 検索  □ 過去ログ
[ 最新記事及び返信フォームをトピックトップへ ]
このトピック参照回数 :
表の列項目を追加挿入

    [196203] 表の列項目を追加挿入-

    ■親トピック/記事引用/メール受信=OFF■

    □投稿者/ どん -(2024/05/03(17:29))
    □U R L/

      次の表なのですが、一番左に氏名があり、
      その他項目がいくつかあるとして
      氏名 日付(1ヶ月分) その他 を挿入したい。

      −−−−−−−−−−−−−−−−−−−−−−−−−−―−−−−−
      氏名 その他 その他 その他....
      Aさん 〇  〇   ×
      Bさん △  ×   △
      Cさん ◇   △   〇
      Dさん □   □   □

      ↓ ↓ ↓

      氏名 日付 その他 氏名 日付 その他 氏名  日付 その他 .....
      Aさん 5/1 〇  Aさん 5/2 〇   Aさん 5/3 ×
      Bさん 5/1 △  Bさん 5/2 ×   Bさん 5/3  △
      Cさん 5/1 ◇  Cさん 5/2 △   Cさん 5/3  〇
      Dさん 5/1 □  Dさん 5/2 □   Dさん 5/3  □


      ご教示の程宜しくお願い致します。



      ++++++++++++++++++++
      OS      ⇒OTHER
      Version⇒OTHER
      ++++++++++++++++++++




    [196205] Re[1]: 表の列項目を追加挿入-

    記事引用/メール受信=OFF■

    □投稿者/ 半平太 -(2024/05/04(08:37))
    □U R L/
      こんな感じかな?
      
      Sub test2()
          Dim BottomA As Range
          Dim ans, ret()
          Dim rName As Range, rData As Range, rdates As Range
          Dim dys As Long, i As Long, k As Long
          Dim fDay As Date
          
          ans = InputBox("例:2024/05", "年月を入力してください", Format(Date, "yyyy/mm"))
          If Not ans Like "####/##" Then
              Exit Sub
          Else
              fDay = DateSerial(Year(ans), Month(ans), 0)
              dys = Day(DateSerial(Year(ans), Month(ans) + 1, 0))
          End If
          
          Set BottomA = Cells(Rows.Count, "A").End(xlUp)
          Set rName = Range("A1", BottomA)
          Set rData = Range("B1", BottomA.Offset(, dys))
          
          ReDim ret(1 To BottomA.Row, 1 To dys * 3)
          
          For i = 1 To dys
              For k = 1 To BottomA.Row
                  ret(k, i * 3 - 2) = rName(k, 1) '氏名
                  ret(k, i * 3 - 1) = IIf(k = 1, "日付", fDay + i) '日付
                  ret(k, i * 3) = rData(k, i)  'データ
              Next k
          Next i
           
          Range("A1").Resize(UBound(ret), UBound(ret, 2)) = ret
          
          Set rdates = Range("B2").Resize(BottomA.Row)
          
          For i = 2 To dys
              Set rdates = Union(rdates, Cells(2, i * 3 - 1).Resize(BottomA.Row - 1))
          Next i
          
          rdates.NumberFormat = "m/d"
          Columns("A").Resize(, UBound(ret, 2)).EntireColumn.AutoFit
      End Sub


      この記事にはVBAのコードが含まれています。

      緑の太文字→注釈
      茶色の太文字→条件分岐
      赤の太文字→ループ
      青の太文字→その他




    [196206] Re[2]: 表の列項目を追加挿入-

    解決!!ありがとうございました! / 記事引用/メール受信=OFF■

    □投稿者/ どん -(2024/05/04(10:07))
    □U R L/

      すごいです!
      ありがとうございました。
      大変助かりました。



このトピック内容の全ページ数 / [0]

このトピックに書きこむ
Name/
E-Mail/

└>このツリーのレス記事をメールで受信しますか? YES/ NO/
Title/
URL/
Comment/ 通常モード->  図表モード-> (←の場合適当に改行を入れて下さい)
タグが使用できます。例 ⇒ <font color="blue">文字</font>
解決!!ありがとうございました! 解決       保留中です・・・ 保留        迷宮入りorほかあたって見ます・・ 迷宮入       すいませ〜ん。誰か〜! Help! ←※回答者専用
解決したらチェック       保留(コードテスト中など・・)         解決不可orレスが全く付かなくてほかのサイトに行くときなど・・
削除キー/
(半角8文字以内) 


- Child Forum -
Edit:ゆう-G