三流君 ken3のmemo置き場

三流プログラマーのメモ書きです。主にVBAやWindowsの話題が多いです

挨拶・自己紹介:
失敗続きのAB型の変わり者 :三流プログラマー Ken3です
フリーのエンジニア・個人事業主です・・と書くと聞こえはイイが(それとなくカッコよく聞こえるが)、 現在は小さな案件の受注請負 と 短期派遣 で 日々つつましく?ほそぼそと暮らしてます。

よく検索されるキーワード: [質問回答XXXXさんへ] [CreateObject] [VBA] [JRA競馬オッズ]

WordVBA マクロ 表の行挿入と日時セットをデバッグ 表 Table 行 Row セル Cell

Word表を操作するマクロでRows.Addで行挿入後、
案1 Row.Cells(1) で 1列目だけ使用する
案2 固定のCell(2,1)にセット
をテストしてみました。

#MSWord #マクロ #WordVBA #デバッグ

キッカケは知恵袋の質問
detail.chiebukuro.yahoo.co.jp
デバッグしてみました。

youtu.be
https://youtu.be/Ywfr8Y-ctgQ
目次
00:00 やりたいこと
00:47 現状確認
01:18 案1 Row.Cells(1) で 1列目だけ使用する
03:29 案2 固定のCell(2,1)にセット

表2行目挿入後に日時・時刻をセットする

1.現在のコードを走らせる
ループで回しているので、
3列すべてにセットされてしまう

Sub CountCells2()
Dim tblNew As Table
Dim rowNew As Row
Dim celTable As Cell
Dim intCount As Integer

intCount = 1
Set tblNew = ActiveDocument.Tables(1)
Set rowNew = tblNew.Rows.Add(BeforeRow:=tblNew.Rows(2))
For Each celTable In rowNew.Cells
celTable.Range.InsertAfter Format(Now(), "yyyy/m/d hh:mm")
'intCount = intCount + 1
Next celTable
End Sub

2.案1 行 Rowから攻める

Row.Cells(1) で 1列目だけ使用するとか?

    intCount = 1
    Set tblNew = ActiveDocument.Tables(1)
    Set rowNew = tblNew.Rows.Add(BeforeRow:=tblNew.Rows(2)) '2行目に行挿入

    Set celTable = rowNew.Cells(1)  '1列目をセット
    celTable.Range.InsertAfter Format(Now(), "yyyy/m/d hh:mm")

3.案2 2行目に行挿入後 固定のCell(2,1)にセットすればいい?のでは?

    Set tblNew = ActiveDocument.Tables(1)
    Set rowNew = tblNew.Rows.Add(BeforeRow:=tblNew.Rows(2)) '2行目に行挿入

    Set celTable = tblNew.Cell(2, 1) '2行目,1列目をセット
    celTable.Range.Text = Format(Now(), "yyyy/m/d hh:mm")

Wordの表をマクロで操作する時の参考となれば幸いです

Ken3 ホームページ 目次

分類:HPを大きく分けると4つの柱(分類)です。

  1. [VBA・マクロ プログラミング]の解説
    当店の人気はVBA系のCreateObject("XXXXXX.application")で他のアプリケーションを操作するサンプルが人気です
  2. [プログラマーの愚痴]では、あまり見せたくない三流プログラマーの内面かな。
    三流君を踏み台にする
  3. [古いクラシック ASP(Active Server Pages)]の解説。
  4. [元コンビニ店長時代の話]が弟に巻き込まれ、失敗した脱サラ、畑違い?の仕事で失敗。
主に上記4つの分類でHP作成やメルマガの発行を行ってます。
※更新頻度が落ちていて情報の鮮度が悪いです。



本当に三流なんです(笑):たまにスゴイですねなんて言われることもありますが、
真実は→ [三流君の真実は...] ←を初めに見てくださるとわかると思います。
(からくりは、成功例↑しか載せてなくて ヒドイ失敗例はお蔵入り迷宮入りが多かったりします)