プロが教える店舗&オフィスのセキュリティ対策術

VBA初心者です。

エクセルのテキストボックスに文字が沢山入っているのですが、
その文字を一度全てセルにひとまず出したいです。

色々検索をかけて、下記を発見したのですが

↓↓↓↓↓


Sub テキストボックスの文字列を書き出す()
Dim shp As Shape
Dim n As Long ' 100

n = Cells.SpecialCells(xlCellTypeLastCell).Row + 3

For Each shp In ActiveSheet.Shapes
If shp.Type = msoTextBox Then
Cells(n, "A").Value = _
shp.TextFrame.Characters.Text
n = n + 1
End If
Next shp


End Sub


-------------------------------------------
他にも品番(シート)が200程あるので
それを一気に全シート処理を行いたいのですが、
ループで処理する方法をその構文にプラスしようとしても、なかなか上手くいきません(TT)

どなたかご教授頂けませんでしょうか??


何卒、宜しくお願いします。

A 回答 (2件)

未検証ですが・・・・



Sub テキストボックスの文字列を書き出す()
Dim ws As Worksheet
Dim shp As Shape
Dim n As Long ' 100

For Each ws In Worksheets

n = ws.Cells.SpecialCells(xlCellTypeLastCell).Row + 3

For Each shp In ws.Shapes
If shp.Type = msoTextBox Then
ws.Cells(n, "A").Value = _
shp.TextFrame.Characters.Text
n = n + 1
End If
Next shp

Next ws
End Sub
    • good
    • 0
この回答へのお礼

めぐみんさん

ありがとうございます!!!(TT)
素晴らしい!!

出来ました!!!

本当にありがとうございます!大変感謝します!!

お礼日時:2018/07/02 10:26

以下のマクロを現行のマクロの後に追加してください


全シート分行う場合は、この「全シート処理」を呼び出してください。
----------------------------------
Public Sub 全シート処理()
Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
Call テキストボックスの文字列を書き出す
Next
End Sub
    • good
    • 0
この回答へのお礼

tatsu99さん

ありがとうございます!!
こちらでも出来ました!!!

大変勉強になります!!


ありがとうございます!!

お礼日時:2018/07/02 10:26

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!