shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Excel】セルにテキストボックスの値を表示する方法

Excelで、セルにテキストボックスの値(文字列や数値)を表示する方法です。標準機能ではできないようなので、ユーザー定義関数を活用します。

【Excel】テキストボックスにセルの値をセル参照で表示する方法の逆パターンです。

内容:

アウトプットイメージ

アウトプットイメージは次のとおりで、セルH2に「作成したユーザー定義関数」を用いて「テキストボックス1」という名前の図形から値を抽出しています。

数式の内容:

=テキストボックスの値抽出("テキスト ボックス 1")

ユーザー定義関数を作成してテキストボックスの値をセルに表示している

テキストボックスの値をセルに表示

なお、数式バーの左側にある [名前] ボックスで、テキストボックスの名前を確認できます。

数式バーの左側にある [名前] ボックスで確認します

テキストボックスの名前の確認方法

ユーザー定義関数の作成方法

  1. Alt キーを押しながら F11 キーで、Visual Basic Editor を開きます。
  2. [挿入]-[標準モジュール] の順にクリックします。 Visual Basic Editor の右側に新しい標準モジュール ウィンドウが表示されます。
  3. 次のコードをコピーして標準モジュールに貼り付けます。
Function テキストボックスの値抽出(テキストボックス名 As String)
    テキストボックスの値抽出 = ActiveSheet.Shapes.Range(Array(テキストボックス名)).TextFrame2.TextRange.Text
End Function

なお、モジュールに貼り付け後のイメージは次のとおりです。

標準モジュールにユーザー定義関数を貼り付けしています

標準モジュールにコードを貼り付け後

ユーザー定義関数の利用方法

ユーザー定義関数のEXCELからの利用方法は、fxのアイコン(関数の挿入)を押して、ユーザー定義を選択すれば利用できます。

 他の事例での参考: Excelで正規表現を使うためのユーザー定義関数サンプル

注意点(自動で再計算されません)

このユーザー定義関数は、自動の再計算がされません。

テキストボックスの内容を反映する場合は、Ctrl + Alt + F9 キーを押します

learn.microsoft.com

なお、ユーザー定義関数に

Application.Volatile

を含めても、F9キー等を押さないと自動で再計算されませんでした。

 

以上、Excelでユーザー定義関数を作成し、セルにテキストボックスの値(文字列や数値)を表示する方法でした。