Accessでフォームのテキストボックスの内容を、コマンドボタンをクリックしてクリップボードにコピーする方法です。他のアプリケーションにテキストボックスの内容を貼り付けたい時などに便利です。
参考ここでは、オブジェクトの表示は[タブ付きドキュメント]の設定にしています。
-
[タブ付きドキュメント]と[ウィンドウを重ねて表示する]の違い
Access2007以降、オブジェクトを表示すると、タブ付きウィンドウで表示されるようになっています。 昔からAccessを使用している方に ...
この記事の目次
フォームの作成
サンプルとして[T_社員]というテーブルがあります。
下の画像はテーブル[T_社員]のデザインビューです。
クエリウィザードを使用してクエリの作成
フィールドを選択してクエリを作成します。
ここでは、クエリウィザードを使います。
[作成]タブの[クエリ]グループにある[クエリウィザード]をクリックします。
クエリウィザード
クエリウィザードを起動します。このウィザードは、選択クエリ、クロス集計クエリ、重複クエリ、および不一致クエリを作成するのに役立ちます。
以下の[新しいクエリ]ウィンドウで[選択クエリウィザード]を選択して[OK]ボタンをクリックします。
次のウィザードで、[テーブル/クエリ]の▼ボタンをクリックして、目的のテーブルを選択します。
必要なフィールドを選択します。左の[選択可能なフィールド]からフィールドを選択して、中央の[>]を押して、右の[選択したフィールド]へ移動させます。
[次へ]のボタンをクリックします。
クエリに名前を付けます。
[クエリを実行して結果を表示する]を選択して、[完了]ボタンをクリックします。
完成したクエリを確認します。クエリは閉じておきます。
以下のクエリで分かるとおり、サンプルでは[備考]フィールドが空のレコードもあります。
単票フォームの作成
作成したクエリ[Q_社員]を選択して、[作成]タブの[フォーム]グループの[フォーム]をクリックします。
フォーム
フォームを作成して、1レコードずつ情報を入力できるようにします。
以下のように単票フォームが作成され、[レイアウトビュー]で表示されます。
ヘッダーのラベルやコントロールの大きさを調整して、フォームに名前を付けて保存します。ここでは[F_社員情報]とします。
参考コントロールのグループ化を解除する方法については、以下の記事で解説しています。
-
フォームのコントロールのグループ解除(レイアウトの削除)と結合・再設定
Accessでテーブルやクエリをもとにフォームを作成すると、コントロールを自由に移動できないということがあります。 それは、コントロールがグ ...
テキストボックス内の改行について
ここでの[備考]フィールドは、データ型が[長いテキスト]なので[Enter]キーで改行されます。
[短いテキスト]で改行する場合は、[Ctrl]+[Enter]で改行できます。
テーブルのデータシートビューでも同じです。
Access2010までは、データ型[長いテキスト]は[メモ型]、[短いテキスト]は[テキスト型]です。
[短いテキスト]でも[Enter]キーで改行したい場合
もし、[短いテキスト]でも[Enter]キーで改行したい場合は、プロパティの[その他]タブにある[Enterキー入力時動作]で設定します。
[短いテキスト]の場合は、[既定]になっていますので、これを[フィールドに行を追加]に変更します。
[長いテキスト]の場合は、既定が[フィールドに行を追加]になっています。
[Enterキー入力時動作]の[既定]というのは、[Accessのオプション]の[Enterキー入力後の動作]の設定に従うということです。
フォームにコマンドボタンを作成
作成した[F_社員情報]をデザインビューで開きます。
[デザイン]タブの[コントロール]グループにある[ボタン]をクリックして任意の位置でドラッグしてボタンを作成します。ここでは、テキストボックス[備考]の右横に設置します。
参考もし、以下のように[コマンドボタンウィザード]が表示されたら、[キャンセル]ボタンをクリックします。
コマンドボタンのクリック時イベントで設定
コマンドボタンのプロパティを開きます。
[デザイン]タブの[ツール]グループにある[プロパティシート]をクリックします。
プロパティは、[F4]キーを押しても表示できます。
[書式]タブの[標題]でコマンドボタンに表示する名前を変更します。
マクロビルダー(マクロアクション)で設定する方法と、コードビルダー(VBA)で設定する方法を解説します。
マクロビルダーとコードビルダーの違いについては、以下の記事で解説しています。
-
マクロアクション(マクロビルダー)とVBA(コードビルダー)
Accessでは、マクロアクション(マクロの実行アクション)やVBA(Visual Basic for Applications)を使って一 ...
マクロビルダーで設定
[イベント]タブの[クリック時]にある[ビルダー選択]ボタン[...]をクリックします。
[ビルダーの選択]ダイアログボックスから[マクロビルダー]を選択して[OK]ボタンをクリックします。
[新しいアクションの追加]の▼ボタンをクリックして、[If]を選択します。
Ifのテキストボックスに以下を入力します。
IsNull([備考])
次の[新しいアクションの追加]で[メッセージボックス]を選択します。
コマンドボタンを押した時に[備考]テキストボックスが空白なら、メッセージウィンドウを表示します。
[メッセージ]のテキストボックスに、メッセージに表示したい文字を入力します。
ここでは、[コピーできるものがありません]と入力します。
[Elseの追加]をクリックします。
[新しいアクションの追加]で今度は、[コントロールの移動]を選択します。
[コントロール名]に以下を入力します。
次にマクロアクション[値の代入]を選択しますが、このマクロアクションは[すべてのアクションんを表示]をクリックしないと、表示されませんので気をつけてください。
[値の代入]は、下から4番目にあります。
[値の代入]の[アイテム]に以下を入力し、[式]には[0]を入力します。
0
次も[値の代入]を選択して、[アイテム」と[式]に以下を入力します。
Len([備考])
そして、[メニューコマンドの実行]を選択して、一覧から[コピー]を選択します。
以下のように設定できたら、上書き保存して閉じます。
プロパティには、[埋め込みマクロ]と表示されます。
参考同じようなマクロアクションを追加する場合は、コピー&ペーストすると効率的です。また、マクロアクションは、アクションカタログから追加することもできます。
-
マクロツールで既存のアクションをコピーして活用(再利用)するには
Accessでは多くのマクロアクションが使用できます。 しかし、毎回アクションを選択して入力するのは面倒ですね。 マクロアクションは、コピー ...
コードビルダーで設定
[イベント]タブの[クリック時]の[ビルダー選択]ボタン[...]をクリックします。
以下の[ビルダーの選択]ダイアログボックスが表示されます。
[コードビルダー]を選択して、[OK]ボタンをクリックします。
コードを入力する画面(VBEウィンドウ)が表示されます。
ここに以下のコードを入力します。
If IsNull(Me!備考) Then
MsgBox "コピーできるものがありません"
Else
[備考].SetFocus[備考].SelStart = 0
[備考].SelLength = Len([備考])
DoCmd.RunCommand acCmdCopy
End If
入力が終わったら、VBEウィンドウは閉じます。
プロパティには、[イベントプロシージャ]と表示されます。
フォームビューで確認
デザインビューからフォームビューに切り替えて、[コピー]ボタンをクリックします。
デザインビューからフォームビューに切り替えるショートカットキーは[F5]キーです。
テキストボックスの内容がクリップボードにコピーされています。メモ帳などに貼り付けて確認してください。
[備考]が空白の場合は、以下のメッセージウィンドウが表示されます。
単票フォームを分割フォームに変更するには
単票フォームを分割フォームに変更するのは、とても簡単です。
フォームのプロパティを表示します。
プロパティシートの[選択の種類]が[フォーム]になっていることを確認します。[フォーム]になっていない場合は、▼ボタンをクリックして、メニューの中から[フォーム]を選択します。
[書式]タブの[既定のビュー]は[単票フォーム]になっていると思います。
[既定のビュー]の▼ボタンをクリックして、[分割フォーム]を選択します。
[デザインビュー]から[フォームビュー]に切り替えて確認します。
もし、データシートビューが上に来ている場合は、再度フォームのプロパティを開いて、[書式]タブの[分割フォームの方向]で[データシートを下に]を選択します。
参考分割フォームについては、以下の記事で解説しています。分割フォームは、単票フォームとデータシートビューを並べて表示できるので、何かと便利です。
-
分割フォーム(単票フォームとデータシートを同時に表示)の作成と使い方
Accessでは、画面を2つに分け[単票フォーム]と[データシート]を同時に表示できる[分割フォーム]というのがあります。Access200 ...
また、フォームに表示する項目が多い場合は、タブコントロールを使うとコンパクトに見やすくなります。以下の記事で解説しています。
-
タブコントロールを使用したタブ付きフォームの作成
Accessでは、タブコントロールを使ってタブ付きのフォームを簡単に作成できます。 例えば、テーブルにフィールドが多く、それを1つのフォーム ...
関連Windows10には、クリップボードの履歴を表示できる機能があります。ピン留めをしておくと、履歴の消去やPCの再起動を行っても、データは保持されます。他デバイスとの同期もできます。
-
クリップボードの履歴[Windows]+[V]で過去の履歴を貼り付け
Windows10 バージョン1809では、クリップボードの履歴を保存できるようになりました。 この機能を使うと、過去のコピーや切り取りした ...
Officeのクリップボードについても解説しています。最大24個まで保存されます。
-
前にコピーしたものを貼り付けたい時はOfficeクリップボードを表示
コピーは、直前のものしか貼り付けできないと思っていませんか? そんなことはありません。 数回前にコピーしたものでも貼り付けできます。 Off ...