前任者がある資料を作成するためにExcelでセルに文字を書き込んでいたのですが、
資料はExcelである必要もなく、
今後もっと融通性のあるレイアウトが必要となり、
Excel内のテキストボックスに変えていこうと思うのですが
何しろ量が多く、ショートカットやマクロを利用したいと思います。
ひとつのセルを選択した後
(1)内容をすべて選択し、
(2)コピー(切り取り)し(Ctr-C,X)、
(3)新しいテキストボックスを作成し、
(4)貼り付ける(Ctr-V)
といった一連の作業を、効率よく行うために(1)や(3)のショートカットを行いたい
または、全てか一部をマクロにしたいと思います。
マクロに関しては、一から組む気はなく、マクロの記録でできる範囲で、と考えています。
効率的な方法を教えてください。
No.4ベストアンサー
- 回答日時:
こんなカンジでマクロを作成し
Sub macro1()
Dim h As Range
For Each h In Selection
If h.Text <> "" Then
With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, h.Left, h.Top, h.MergeArea.Width, h.MergeArea.Height).TextFrame
.Characters.Text = h.Text
.MarginLeft = 0
.MarginRight = 0
.MarginTop = 0
.MarginBottom = 0
End With
h.MergeArea.ClearContents
End If
Next
End Sub
テキストボックス化したいセル範囲をアバウトに選択しておいて実行すると,テキストボックス化します。
ここまでかゆいところに手が届くコードをありがとうございます。
もしかしたら、一日覚悟していた操作が、一瞬でできてしまいそう。
今日はこの作業に手をつけず、質問の投稿だけにしてよかったです。
今から、一瞬にして、作業を終えることにします。
ありがとうございました。
No.3
- 回答日時:
>できれば、元のセルデータを消した状態で、後任者に渡したいのです。
この場合はマクロを使うしかありません。
>「今後もっと融通性のあるレイアウトが必要となり、Excel内のテキストボックスに変えていこうと思うのですが
そもそもテキストボックスにすると逆に不便になるような気がするのですが、どうしてもテキストボックスに文字列を移動したいなら、以下のようなマクロを利用することになります。
シート名部分を右クリックして、「コードの表示」で表示される画面で、以下のコードをコピー貼り付けして、移動したいセルをダブルクリックすると、そのセルの右に文字列が移動したテキストボックスが作成されます。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
ActiveSheet.Shapes.AddTextbox( _
Orientation:=msoTextOrientationHorizontal, _
Left:=Target.Offset(, 1).Left, Top:=Target.Offset(, 1).Top, _
Width:=Target.Offset(, 1).Width, Height:=Target.Offset(, 1).Height).Select
With Selection
.Characters.Text = Target
.AutoSize = True
End With
Target.ClearContents
End Sub
すばらしいです。これこそやりたかったことです。
一からは自分で作れませんが、ちょっと改造して利用できそうです。
大変ありがとうございました。
ところで、テキストボックスにするメリットは、
テキストボックス同士をコネクタで結びたいという理由が一番大きいです。
セルでもできるならば、別にセルのままでもよいかもしれないのですが、テキストボックスの拡大、縮小、などの更新が頻繁にあるので、やはりセルでは厳しいように思っています。
No.2
- 回答日時:
マクロの記録をやってみれば良いじゃない。
せずに質問する「のはおかしい。テキストボックスを選択して、数式バー部で =A2 など入れる操作をする。
Sub Macro4()
ActiveSheet.Shapes("TextBox1").Select
Selection.Formula = "A2"
ActiveSheet.Shapes("TextBox2").Select
Selection.Formula = "A3"
End Sub
--
(1)上記は2つのテキストボックスと2つのセルの場合だが、テキストボックスは、手動で増やしている。この点、数が多いと大変だが、プログラムでやる手もあるが初心者向けではない。
テキストボックスは何個ぐらい予想されるのか?
(2)上記マクロの記録ははForNextやFoe Eachで簡単に繰り返し作業に変えられる。
(3)>今後もっと融通性のあるレイアウトが必要となり、Excel内のテキストボックスに変えていこうと思うのですが
テキストボックスのテキストにすると融通性がある、という根拠はさっぱり判らない。
「テキストファイル」の間違いならある面で納得する。
テキストファイルとテキストボックスは別物ですよ。
(4)>一から組む気はなく、
VBAで組むとコードが長くなるとかの目算があるのか。現状はVBAの勉強をしておらず、組めないだけでは。
(5)テキストボックスも、エクセルでは(1)フォーム上に(2)ワークシート上に、設置する方法がある。どちらかも明示してないのは、余りこのような券で経験して無い証拠。
ーーー
以上読んで、お礼欄にでも、後続の読者のために追加補足しておいたら。
早々にありがとうございました。
マクロの記録はやってみましたが、先の方に説明したとおり、数式バーに入れることは試していませんでした。
(1)300個くらいです。
手作業でも30個まとめてコピーすればそれほど苦ではありません。
(2)はい。
(3)質問に書いたとおり、Excelである必然性のない資料です。データ処理は行わず
「絵」として印刷物を配布することを目的とします。
(4)はい。勉強する暇は趣味的には欲しいですが、今回は一からコードを書くならば、手作業の方が早いと判断しています。
(5)データ処理を行うものでもなく、印刷物として使うので、フォームは使いません。
No.1
- 回答日時:
セル内のデータをテキストボックスに表示したいなら、テキストボックスを選択し、数式バーに「=」と入力し、コピーしたいセルを選択してEnterするのが最も簡単な操作です。
より効率的な作業をしたいなら、1つのテキストボックスを作成し、Ctrlキーを押しながらドラッグして必要な数だけテキストボックスを作成しておいて、それらのテキストボックスに対して上記の操作を行って下さい。
さっそくの回答をありがとうございます。
数式バーで「=」を使うと、リンクとなりますよね。
できれば、元のセルデータを消した状態で、後任者に渡したいのです。
おっしゃる方法の後、内容だけコピーなどできるとよいのですが、
それもうまくできず...
PowerPointにもっていくとできるの(但しフォントの設定やいろいろ設定し直すのが
大変そうなので、まずExcelのままがよいと思っています)で
何らかの方法があると思うのです。
どうしたらよいでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
最近、いつ泣きましたか?
泣いてストレス発散! なんて言いますよね。 あなたは最近いつ、どんなシチュエーションで泣きましたか?
-
家・車以外で、人生で一番奮発した買い物
どんなものにお金をかけるかは人それぞれの価値観ですが、 誰もが一度は清水の舞台から飛び降りる覚悟で、ちょっと贅沢な買い物をしたことがあるはず。
-
CDの保有枚数を教えてください
ひとむかし前はCDを買ったり借りたりが主流でしたが、サブスクで簡単に音楽が聴ける今、CDを手に取ることも減ってきたかと思います。皆さんは2024年現在、何枚くらいCDをお持ちですか?
-
【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
【お題】 ・世界最古のコンビニについて知ってる事を教えてください
-
「お昼の放送」の思い出
小学校から中学校、ところによっては高校まで お昼休みに校内放送で、放送委員が音楽とかおしゃべりとか流してましたよね。 最近は自分でもラジオができるようになって、そのクオリティもすごいことになっていると聞きます。
-
任意で選択したセルをテキストボックスに表示
Excel(エクセル)
-
Excelのテキストボックスでフォントの色を変える
Excel(エクセル)
-
エクセルテキストボックスの文字列をセルに引っ張ってくるやり方
Visual Basic(VBA)
-
-
4
VBAのテキストボックスに文字列を貼り付ける方法
Access(アクセス)
-
5
テキストボックスにセルの値を複写する方法
Visual Basic(VBA)
-
6
[エクセルVBA]セルの値をテキストボックスに表示
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
Excelでセルをクリックす...
-
エクセル 数字をすべて○などの...
-
クリックすると文章が表示され...
-
Excelの図形から特定のセルへの...
-
Excel ハイパーリンクのURLを別...
-
小数点以下の文字だけ書式を変...
-
現在のセルの位置を返す関数は...
-
Excel内での検索結果をシート...
-
文字の組み合わせの出現回数を...
-
excelのソルバーをVBAで複数行...
-
アポストロフィーの一括挿入 ...
-
セルの値が変ると自動でマクロ...
-
マクロで写真貼付_順番
-
セルの内容をテキストボックス...
-
VBAでA1形式をR1C1形式で表記し...
-
Excel2007 色のカウント (VBA)
-
Excel2003 チェックすると日付...
-
excelで セルの移動時に...
-
EXCEL urlを一括で開きたい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで特定のセルに表示...
-
エクセル 数字をすべて○などの...
-
Excel内での検索結果をシート...
-
クリックすると文章が表示され...
-
太字に設定されているセルの個...
-
Excelで、図形内の文字をセルに...
-
Excelでセルをクリックす...
-
マクロを実行すると画像がズレ...
-
Excel ハイパーリンクのURLを別...
-
ページ内ハイパーリンクの表示...
-
エクセル 未入力セルがあると...
-
現在のセルの位置を返す関数は...
-
フォントの色を指定して削除出...
-
セルがクリックされた回数をカ...
-
アポストロフィーの一括挿入 ...
-
エクセルでPDFリンクを大量...
-
Excel2007 色のカウント (VBA)
-
【EXCEL】先週の月曜日の日付を...
-
エクセルでページ数をあるセル...
-
VBA 見つからなかった時の処理
おすすめ情報