Excel VBA質問箱 IV

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

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


109 / 13196 ツリー ←次へ | 前へ→

【79698】テーブル名の一括変更 AAA 18/3/12(月) 16:39 質問[未読]

【79714】Re:テーブル名の一括変更 AAA 18/3/14(水) 16:38 発言[未読]
【79715】Re:テーブル名の一括変更 マナ 18/3/14(水) 21:27 発言[未読]
【79718】Re:テーブル名の一括変更 AAA 18/3/15(木) 10:19 質問[未読]
【79721】Re:テーブル名の一括変更 マナ 18/3/15(木) 20:04 発言[未読]
【79722】Re:テーブル名の一括変更 AAA 18/3/16(金) 10:18 発言[未読]
【79723】Re:テーブル名の一括変更 マナ 18/3/16(金) 18:42 発言[未読]

【79714】Re:テーブル名の一括変更
発言  AAA  - 18/3/14(水) 16:38 -

引用なし
パスワード
   ▼マナ さん:

>名前は手入力するならマクロにしても楽にはならないのでは?

一度シートに書出して、一括で置換しようと思います。
その後、置換えた名前を戻したいのです。

>ところで、提示したコードは参考になりませんでしたか。

すいません。
全然わからないです。

【79715】Re:テーブル名の一括変更
発言  マナ  - 18/3/14(水) 21:27 -

引用なし
パスワード
   ▼AAA さん:
>
>全然わからないです。

そうなると次に進めないです。
msgbox関数はわかりますか。
for each~nextはわりますか。

【79718】Re:テーブル名の一括変更
質問  AAA  - 18/3/15(木) 10:19 -

引用なし
パスワード
   ▼マナ さん:

> msgbox関数はわかりますか。

わかります。

>for each~nextはわりますか。

繰返しですか?

ListObjectsプロパティは、Worksheetオブジェクトにだけにしか
ないのですね。

MsgBox t.Nameのところをシートに書きだすところが
わからないです。
宜しければ教えて下さいませ。

【79721】Re:テーブル名の一括変更
発言  マナ  - 18/3/15(木) 20:04 -

引用なし
パスワード
   ▼AAA さん:

>MsgBox t.Nameのところをシートに書きだすところが
>わからないです。

↓が参考になりませんか。

>'名前定義書き出し
>Dim i As Integer
>With ActiveWorkbook
>For i = 1 To .Names.Count
> Cells(i, 1).Value = .Names(i).Name
> Cells(i, 2).Value = "'" & .Names(i).RefersToLocal
>Next i
>End With

【79722】Re:テーブル名の一括変更
発言  AAA  - 18/3/16(金) 10:18 -

引用なし
パスワード
   ▼マナ さん:

レスありがとうございます。
書出しは、これでできました!
ありがとうございます。
次は、戻す方に挑戦してみます。

Sub test()

  Dim ws As Worksheet
  Dim t As ListObject
  Dim i As Integer

  With ActiveSheet
    i = 1
    For Each ws In ActiveWorkbook.Worksheets
     For Each t In ws.ListObjects
    
       .Cells(i, 1).Value = t.name
       .Cells(i, 2).Value = "'" & ws.name & "!" & t.Range.Address
       i = i + 1

     Next
    Next
  End With
   
End Sub

【79723】Re:テーブル名の一括変更
発言  マナ  - 18/3/16(金) 18:42 -

引用なし
パスワード
   ▼AAA さん:

>.Cells(i, 2).Value = "'" & ws.name & "!" & t.Range.Address

戻すときのことを考えると
B列にシート名、C列にセル番地と
セルを別にしておくとよいかもしれません。

.Cells(i, 2).Value = ws.name
.Cells(i, 3).Value = t.Range.Address


>次は、戻す方に挑戦してみます。

γさんのコメントが参考になるはずです。

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