人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel VBAに関する質問です。

「あるセルをアクティブにしたまま別のセルの内容を貼り付け、アクティブな状態を維持したい」

具体的には以下の手順です。
1. とあるセルに何らかの文字列を入力する。
2. そのセルをアクティブにしたまま別のセル(例えば B1。ここは固定。)に入っている内容を貼りつける。
3. 最初のセルの続きに何か文字列を入力できるようにする。

この 2 の部分を VBA で書き、画面上のボタンに割り当てたマクロとして実行させたいのですが、可能でしょうか?

素人考えでは実行時にセル番地とセル内容を変数に書き込んでおいてからB1をアクティブにし、内容をコピーしてから元のセル内容と繋ぎ合わせ、最後に元のセルをアクティブにするという流れなのですが、どのように書けば良いか分かりません。(もっと簡単に実現できる方法もあるかもしれませんが。)

なおVBAエディタ上で B1 のセル内容を書き込んでおき、マクロ実行によって連結させるということはできません。(Unicode文字なのでVBAエディタが対応していません。VBAエディタでUnicodeが使える方法もあるようですが、今回は除外とします。)

よろしくお願いいたします。

●質問者: kmyken1
●カテゴリ:コンピュータ
✍キーワード:Excel Unicode VBA とある アクティブ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● うぃんど
●100ポイント ベストアンサー

VBAからはセルの値などを直接参照できるので「B1をアクティブにする必要は無い」ですよ

B1をアクティブにする必要が無いので、アクティブなセルの番地を変数に入れておくなども不要になり、

アクティブなセルの文字列にセルB1の文字列を継ぎ足したいのであれば下記のような具合になります

ActiveCell.Value = ActiveCell.Value & Range("B1").Value
◎質問者からの返答

ありがとうございます。私の質問の仕方がまずかったのもありますが、以下のコメント欄に書いておりますように、セルが「アクティブ」な状態ではなく「入力中/入力待ち」の状態で実行したかったのです。ご教示いただいた方法は既に試しましたが動作しませんでした。

同時進行でTwitterの方でもこの件に関してフォロワーの方から教えていただいていたのですが、結局は「入力中」の状態ではマクロを実行できないのでは?というご指摘をいただき、確認してみましたがやはりそういう状況のようです。

質問本文でも記入しましたように、入力中の状態を一旦抜けてからB1をアクティブにして内容を参照し、元のセル内容と結合する、というような方法で実現できそうなのですが、入力中の状態でマクロを実行できないとなると、そこから抜け出すためのマクロも動作しないということになり、頓挫してしまいました。入力待ち状態であることを監視しておくという方法もあるようですが結構大掛かりになってしまいそうで私の能力を超えています。

何かよいアイデアがあればご教示下さい。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ