• ベストアンサー

Excel2007 VBA ラジオボタン セルに動的に配置

ラジオボタンをセルに合わせて配置したいです。 http://oshiete1.goo.ne.jp/qa1194660.html より 1.コピー&ペーストでアクティブセルに配置 2.数値でセルに合わせて配置 と二つの方法は理解できたのですが。 1.は一度適当なところにボタンを貼り付けなければいけない。 2.は数値による位置指定なのでやや不安定(セルの大きさが変更された場合に対応しなければならない) ですので簡潔に、 1.アクティブセルを指定 2.セルの大きさに自動的に合わせてオプションボタンを配置 といったことはできないのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • end-u
  • ベストアンサー率79% (496/625)
回答No.1

Excel.FormコントロールのOptionButtonは With ActiveCell   .Worksheet.OptionButtons.Add .Left, .Top, .Width, .Height End With ActiveXコントロールのOptionButtonは With ActiveCell   .Worksheet.OLEObjects.Add ClassType:="Forms.OptionButton.1", _                Left:=.Left, Top:=.Top, _                Width:=.Width, Height:=.Height End With どちらもActiveCelの.Left, .Top, .Width, .Height それぞれのプロパティに合わせて配置すれば良いです。 シート上に配置するのは、Formコントロールをおすすめします。 シート上にActiveXコントロールを多数配置する場合、不具合が発生する事が多いと聞きます。 Excel.Formコントロールの方が親和性が良いのだと思います。

ShimantoGa
質問者

お礼

回答ありがとうございます。 自動的にセルのLeft,Top~に合わせてはくれないようですね。 ご教授いただいた方法で実現したいと思います。

ShimantoGa
質問者

補足

>シート上にActiveXコントロールを多数配置する場合、不具合が発生する事が多いと聞きます。 調べてみたところ、以下のページを発見しました。 http://oshiete1.goo.ne.jp/qa329690.html 当時Excel2000以前でしょうか? 同じ不具合かどうかはハッキリしません。(やや古い記事ですし) 宜しければ不具合の具体的な内容を教えていただけないでしょうか。 現在ActiveXコントロールを多く使っており、Formコントロールを使用した方が良い理由を知りたいです。

その他の回答 (8)

  • end-u
  • ベストアンサー率79% (496/625)
回答No.9

こんばんは。Wendy02さん。お返事ありがとうございます。 なるほど、『回答する意識の違い』ですね。 ひょっとすると、こういったQ&A掲示板に対する利用ポリシーの違いとでも言えるのでしょうか。 私は別にプロではないので『教えている』という意識は薄く、そのせいかもしれませんね。 どちらかというと、ユーザーの立場でアドバイスしながら自分も勉強させてもらってる意識の方が強いのです。 最終的には、メーカーが機能を切り捨てたら方向性に従うも何もなく、使えないわけですから今からその準備をしておかなくても。 とは個人的には思いますが。 何か大げさだなあ...と思ってるところがきっと納得云々の部分なのでしょう。 VBAヘルプは確かにそういう方向性が見てとれないわけでもないですが、2007のメニュー構成や一般ヘルプにはあまりそういう方向性は感じ取れないもので。 #そう言えばココは『[技術者向] コンピューター > プログラミング > Visual Basic 』カテでした。 いずれにしても、 『ワークシート上にOptionButtonなどのコントロールを多数配置する場合、フォームコントロールの方が優れているが、  問題は発生するけれどもMicrosoftが勧めているActiveXコントロールをやむを得ず使わざるを得ない』 というのがWendy02さんのお考えですね。 先にも書いたように >経験豊富な回答者の方がフォームコントロールよりもActiveXコントロールを勧められた事例に初めて遭遇しました。 >同様なケースでのアドバイスの仕方も、そろそろ考え直さないといけない時期なのでしょうかね。 という事で私もしばらく考えてみます。 (深く考えるのは苦手なので長続きはしないかもしれませんが) お答えを頂いて、すっきりしました。ありがとうございました。 質問者のShimantoGaさん、スレッドをお借りした形になってしまったようで申し訳ありません。ありがとうございました。

ShimantoGa
質問者

お礼

>質問者のShimantoGaさん、スレッドをお借りした形になってしまったようで 一向に構いません、私も興味深く読ませていただいておりました。 以下私の感想なのですが・・・ >問題は発生するけれどもMicrosoftが勧めているActiveXコントロールをやむを得ず使わざるを得ない これは色々と問題あるのではないかと。 ActiveXがいかに将来性のある技術であろうと、現時点で問題があるのが発覚した時点でフォームコントロールを使用しなければならないでしょう。 でなければシステムとして成立しませんし、成果物として提出も出来ません。 バージョン制約を受けた場合ActiveXコントロールに問題があることは発覚しているので、フォームコントロールを使用するようにする。 Excel最新版では問題が解消されているので、将来性のあるActiveXコントロールの使用を「推奨」する。 私見ですがこんなイメージでよろしいでしょうか。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.8

こんばんは。 #5に対する返事です。それは、回答する意識の違いです。 納得していただけるとは思いませんが、こちらの考え方を多少書かせていただきます。 >両方のコントロールを使ってみれば解る事で、それぞれ特性の違いがあるわけですから、その特性を把握した上で、自分のスキルと目的に応じて使い分ければ良いだけの話です。 >『現状で使えるものは、そのスタイルにこだわらず、すべて使うというのは、誰に遠慮することもなく、あたりまえのことですからね。』 それは、個人の立場でコーディングしているなら、それで良いと思います。誰にはばかることなく書けばよいと思います。VBAは、本来プライベートなものでチームで共通の書法で構築するものでもありません。(それにしては、私は、質問者さんに余計なことを書きすぎていますが、それは突っ込まないでください。)しかし、私は、一応、掲示板で教えている以上は、人に見せるコードを意識して、ある程度のMicrosoft 側の方向性には従っていくことが良いのではないかと考えています。(ただし、最近、WorksheetFunction.関数を一部Application.関数にしました。コードの無駄が多くなるからです。) 以前になりますが、掲示板では良く知られた人が、私の書いたVer.4マクロ関数を使ったものに対してと、何回も執拗に攻撃をしました。書いている内容は荒唐無稽なものでしたが、回答者として技術的に多少は自信がある人にとって、良く分からないテクニックを他人に書かれるのは面白くない、というのは心理的には分かるような気がします。 その人がOffice の知識に対しては不十分だったとしても、そうした情報を知る手段もなく、まして一般の入門者や初心者の方には、半永久的に届かないテクニックになってしまう可能性が強いと思います。 それと、Microsoft 社自身の開発の考え方というのは、仮にどんなユーザーがいたとしても、最終的には古いものは、時期が来たら切り捨てする、ということを何度もしてきていますから、現行では、Officeの開発のチームリーダが、VBAを除去しないと保証(2008年時)はしても、小出しにオブジェクトを切り捨てすることは起こりうることだ、と思います。それよりも、VBA上では、ヘルプにないということは、何よりも使ってほしくない、と解釈しています。 なお、分析ツールアドインは、Ver.5マクロのフォームを未だに使っています。そして、このアドインは、不具合もあると聞きます。 私は、Excel 2000からVBAを始めて、遡って、Ver.4 やVer.5 のテクニックは、新たに学びました。捨てがたい情報はあります。実際、このアドインはハングすると解除が面倒です。しかし、そうしたテクニックは、唯一無二のものではないようです。ただし、それを補うテクニックは、格段に難しくなることが多いのです。 Ver.5のフォーム・ツール(コントロール)の場合は、オブジェクトのプロパティは分かっても、多くの方は、メソッドまでは良く分からないと思うのです。VBAを始めたばかりの人や初心者の人たちのことを考えていくと、あえて聞かれる以外には、参考程度にしか紹介できないように思っています。事実、Office 関連やここの掲示板でも、Ver.5という認識をする人はいないとは思いますが、Ver.5 のフォーム・ツールに関する質問は極端に減ってきたと思います。 つまり、おっしゃっている >A)優れているフォームコントロールではなく、Microsoftが勧めているActiveXコントロールを使ったほうが良い。 ということを考えています。良い悪いではなく、やむをえないのです。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.7

[フォームコントロール]と[ActiveXコントロール]についてはヘルプの「フォーム」の項を参照してください。 http://office.microsoft.com/ja-jp/excel/CH102509001041.aspx [フォームコントロール]も[ActiveXコントロール]も、ワークシート上に配置する時 OptionButton や CheckBox などは、必ずしもマクロが必須というわけではないのです。 手作業で配置しリンクセルを設定して、セルのデータと連携しながらセル以外の入出力手段として使えます。 VBA的に違いを把握しようとするなら[オブジェクトブラウザ]を開いてください。(VBEウィンドウで[F2]キー) [オブジェクトブラウザ]ウィンドウ内で右クリック「非表示のメンバを表示」。 検索ボックス.検索文字列に OptionButton と入力して「検索」。 非表示メンバになっている Excelライブラリの OptionButton クラスが[フォームコントロール]の OptionButton です。 シート配置する際、2003以前は[フォーム]ツールバーでした。 MSForms のライブラリの OptionButton クラスが[ActiveXコントロール]の OptionButton です。 シート配置する際、2003以前は[コントロールツールボックス]ツールバーでした。

ShimantoGa
質問者

お礼

回答ありがとうございます。 >Excelライブラリの OptionButton クラスが[フォームコントロール]の OptionButton です。 確かにExcelライブラリとMSFormsライブラリの二つにOptionButtonクラスが存在していました。(OptionButtonsなんてのもありますが) 見るとフォームコントロールのOptionButtonにはClickイベントが存在しないなど、ActiveXコントロールとは別物のようです。(今さらですが) このメンバに応じてフォームかActiveX、どちらのコントロールを使用するか決めれば良いということですね。 >シート配置する際、2003以前は[フォーム]ツールバーでした。 >2003以前は[コントロールツールボックス]ツールバーでした。 2003と2007で名前が変わっているとややこしいですね。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 >ユーザーフォームに対してフォームコントロールを乗せる方法しか載っていません。 #1,2さんが書いていたことに対しても、私の書いたことにも、どうやら誤解があるようです。ご質問者さんは、フォームというのは、UserForm ツールのことをおっしゃっているのだと思います。「フォームがシートに親和性が高い」というフォームとは、開発メニュー→挿入→フォームコントロールのツールのことです。 フォーム・ツールの載っている本など、現在では売られてはいませんし、一般の方には、詳しい資料やテクニックは入手できないはずです。 http://oshiete1.goo.ne.jp/qa329690.html フォームとコントロールツールボックスの違い 一応、フォームのマクロも出しておきますが、もし、フォームについて分からないようでしたら、この件についての書き込みは忘れたほうがよいですね。 なお、 >2.セルの大きさに自動的に合わせてオプションボタンを配置 ということはありません。画面サイズに連動していますから、オプションボタンの大きさ自体は変わりません。 '------------------------------------------- Sub Test1() 'オプションボタン追加 Dim i As Long For i = 1 To 10 With Cells(i, 1)  x1 = .Left + 2  y1 = .Top  x2 = .Offset(, 1).Left  y2 = .Offset(1).Top End With With ActiveSheet.OptionButtons.Add(x1, y1, x2 - x1, y2 - y1)  .Caption = "" End With Next i With Range("A1")  x1 = .Left  y1 = .Top  x2 = .Offset(, 1).Left  y2 = .Offset(i - 1).Top End With With ActiveSheet.GroupBoxes.Add(x1, y1, x2 - x1, y2 - y1)  .Caption = "1" End With End Sub '------------------------------------------- Sub Test2() 'オプションボタン削除  ActiveSheet.OptionButtons.Delete  ActiveSheet.GroupBoxes.Delete End Sub '-------------------------------------------

ShimantoGa
質問者

お礼

回答ありがとうございます。 確認しましたところ、UserFormのツールボックスに存在しているアイテムはすべてフォームコントロールではなくActiveXコントロールのようですね。 失礼しました。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.5

よくわかりません。 「Active X コントロールを多く使えば、外部プログラムですから、メモリの負担が多くなり問題が発生するのは言うまでもありません。」 「そういう場合は、Formツールのほうが圧倒的に優れていますが、」 ここまでは解ります。 「だから、Formツールが良いともいえません。」 なぜにそういう結びになるのかが理解できません。 本意はどこにあるのですか? ワークシート上にActiveXコントロールを多数配置する場合、問題は発生するけど A)優れているフォームコントロールではなく、Microsoftが勧めているActiveXコントロールを使ったほうが良い。 B)フォームコントロールが良いともいえず、悪いともいえず。どちらでも構わない。 C)各ユーザーが判断するのであって、アドバイスしないほうが良い。 D)その他。 答えて頂く義務はありませんが、何かすっきりしないもので。申し訳ありません。 仮に(A)だとすると、経験豊富な回答者の方がフォームコントロールよりもActiveXコントロールを勧められた事例に初めて遭遇しました。 同様なケースでのアドバイスの仕方も、そろそろ考え直さないといけない時期なのでしょうかね。 ただ、[フォームコントロール]が古いと言っても、例えば2007からExcelを始めた方は[開発]-[コントロール]タブの[挿入]で [フォームコントロール]、[ActiveXコントロール]と並んで出てくるものを古いと感じないのではないでしょうか。 挿入操作もマクロ記録できる状況で、「裏技」とは言えないでしょう。 両方のコントロールを使ってみれば解る事で、それぞれ特性の違いがあるわけですから、 その特性を把握した上で、自分のスキルと目的に応じて使い分ければ良いだけの話です。 『現状で使えるものは、そのスタイルにこだわらず、すべて使うというのは、誰に遠慮することもなく、あたりまえのことですからね。』

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 先の書き込みから、こちらを読ませていただきました。 >現在ActiveXコントロールを多く使っており、Formコントロールを使用した方が良い理由を知りたいです。 それは立場の違いだと思います。ある程度のレベルの人なら、どちらがどうということはいえないのですが、VBAを近年始めた人にとっては、古いもの(レガシー)はお勧めしません。レガシーテクニックを使わざるを得ないときはあります。しかし、それは、今では、「裏技」のような存在になってしまうと思うのです。 ActiveX コントロールのListBox のスクロールのエラーの問題は、前から聞いたことがありますが、それはバグとして認識され、改善されるべき問題であると思います。Formツールは、本来、DialogSheetに使われ、Excel Ver.5で使われていたもので、しょせん、レガシーだと思っています。その周辺のオブジェクトは、今のOffice 2000? 移行のHelp に出てきません。プロパティ自体は、ローカルウィンドウで分かるにしても、ほとんどの方は、メソッドなどは分からないと思うのです。それを、今さら、新しく始めた人たちにまで使ってください、とも言えないのです。事実上、Microsoft 側は、Active X コントロールへの移行を勧めていると思うのです。 Formツールの利点と比較すると、ActiveXコントロールは、いわゆるコレクション形式にはなっていませんので、コントロール配列の真似事などは基本的には出来ません。(使うためには、クラス・インスタンスが必要です。)また、Active X コントロールを多く使えば、外部プログラムですから、メモリの負担が多くなり問題が発生するのは言うまでもありません。そういう場合は、Formツールのほうが圧倒的に優れていますが、だから、Formツールが良いともいえません。

ShimantoGa
質問者

お礼

回答ありがとうございます。 わざわざこちらの方までご回答いただき誠に有難うございます。 つまり、「レガシーテクニックを使わざるを得ないとき」以外はActiveXコントロールでの実装を考えた方が良い、ということで宜しいでしょうか。 気になったのはExcel VBAの書籍をみると、ユーザーフォームに対してフォームコントロールを乗せる方法しか載っていません。 ActiveXコントロールを見かけるのはかなり希でした。 そもそもワークシートにコントロールを張り付ける、というやり方自体多くの書籍で紹介されていません。(ほとんどユーザーフォームに対してのみ) 私の参考にした書籍が間違っていた(悪い意味ではなく)だけでしょうか。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

シートのセルの画面上の位置とコントロールの位置は全く関係が無く、基本はコントロールを貼り付け設置する人の位置あわせの責任です。シートに浮いているようなイメージ。 でも (1)コントロールをコードから生成し(ADD) (2)そのコントロールのLeft,Top、Width、HeightをセルのLeft,Top、Width、Heightに関連付けることができる。 OptionButtonの例で Sub test02() For i = 2 To 5 l = Cells(i, "B").Left + 10 t = Cells(i, "B").Top + 5 w = Cells(i, "B").Width - 10 h = Cells(i, "B").Height - 5 With ActiveSheet.OLEObjects.Add(ClassType:="Forms.OptionButton.1") .Top = t .Left = l .Width = w .Height = h .Object.Caption = "ボタン" & (i - 1) End With Next i End Sub こういうことを聞いているのかな。 行高、列幅は適当な大きさに設定しておくこと。

ShimantoGa
質問者

お礼

回答ありがとうございます。 ExcelとActiveXを関連付ける手段が提供されているのか、と考えていたのですが。 やはり自分で位置指定してやるしかないようですね。 Dim i As Integer i = 1 For i To 2 Step 1 ActiveSheet.Cells(i, 1) 'アクティブセルに合わせてOptionButtonを配置 Next と、こんなことがしたかったんですが。 教えていただいたコードを参考にさせていただきます、ありがとうございました。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.2

>宜しければ不具合の具体的な内容を教えていただけないでしょうか。 >現在ActiveXコントロールを多く使っており、Formコントロールを使用した方が良い理由を知りたいです。 ActiveXコントロール(MSForms.Control)は本来UserFormに配置して使う方が適しているのではないでしょうか。 最近のスレッドで http://oshiete1.goo.ne.jp/qa5036603.html こういうのもありました。2003sp3/vba6.5 1024でも同様に、Excelが落ちてました。 今日現在では発生しなくなりましたので更新プログラムがUpdateされていたようです。 ですので、不具合が多いといっても http://support.microsoft.com/kb/169885/ja http://support.microsoft.com/kb/211866/ja http://support.microsoft.com/kb/312949/ja http://support.microsoft.com/kb/315199/ja http://support.microsoft.com/kb/320520/ja http://support.microsoft.com/kb/330157/ja http://support.microsoft.com/kb/416344/ja http://support.microsoft.com/kb/417966/ja http://support.microsoft.com/kb/418780/ja http://support.microsoft.com/kb/823988/ja http://support.microsoft.com/kb/834685/ja http://support.microsoft.com/kb/838006/ja http://support.microsoft.com/kb/838914/ja http://support.microsoft.com/kb/842231/ja バージョンアップやサービスパック、修正パッチなどで解消されるケースも多いのでしょう。 シート配置の場合Formコントロールをおすすめしたのは、例えばオプションボタンを多数配置する時に、 『Formコントロールで事が足りるならば』  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ あえてActiveXコントロールを使わなくても良いのではないでしょうか。という意が強いです。 [フォーム]ツールバーのコントロールはExcelライブラリのものなので、 いわば別アプリのActiveXコントロールよりも、相性が良いような気がします。 不具合情報などを参考に、『そんな事もあるんだ』くらいに受け取っておけば何かの時に対処できますから、 知ってて使う分にはいいんじゃないでしょうか。強固に反対しているわけではありません。

ShimantoGa
質問者

お礼

回答ありがとうございます。 参考サイトを読ませていただきました。 Excelのバージョン制約を受ける場合、古いものほどFormコントロールを使用した方がバグが少ない、と認識しました。 Excelの最新版であればどちらでも良い、といった感じでしょうか。 大変勉強になりました、ありがとうございます。

関連するQ&A

  • 【Excel】ラジオボタンやチェックボックスの使い方

    こんにちは Excelのフォームを使って、セルにラジオボタンやチェックボックス、 ボタンなどを配置することができますが、形だけが配置されて、機能させることができません。 これらの使い方を教えてください。 ラジオボタンで選んだセルの内容を、別のセルに表示するといったことがやってみたいのですが、これでできますか。

  • エクセルVBAでオプションボタンのセル内配置

    エクセル2000です。 シート上に「フォーム」のオプションボタンを配置する際、自動記録を取ると ActiveSheet.OptionButtons.Add(2.25, 2.25, 48, 16.5).Select のように、座標表示になりますが、これを仮に、A1セルやA2セルに配置したい場合、(行の高さ等はシートにより異なるものとします・・・つまり座標が使えない場合)どのような記述になるのでしょうか?

  • VBAでマウスボタンが離された時のセル番地を取得

    エクセル2010のVBAを使ってマウスのボタンが離された場所のセル番地を取得することはできますか?  例えば  マウスの左ボタンをA5の位置で離したとしたらA5というセル番地が返されるようにしたいです(ボタンを離したときのセルはアクティブセルではないという条件で)。

  • VBA ボタンに登録するセルの参照の仕方。

    参照するセルを指定する方法を教えていただきたいです。 現在の私の知識ですとボタン一つずつに参照セルを一つずつ手打ちするしかなくて。想定としては2000行に2000個ぐらいを想定しております。 フォームコントロールのボタンにマクロを登録して添付画像のように各行に一つづつ配置したいと考えております。 ボタンに登録するマクロは以下のようなもので、ボタンを配置した行と同じ列の特定セルを画像左側のカレンダーにペーストするといったものです。 Sub ボタン_Click() ' セルを選択してコピー Range("AE2").Copy ActiveCell.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False 'コピー状態が残るのでキャンセル End Sub 皆様のお力を貸していただけると幸いです。 よろしくお願いします。 ※エクセルのバージョンはHome and Business 2019 です。

  • VBA アクティブセルに対しての作業に関して

    -質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例)     A    1 成功  ←アクティブセルをコピー   3 成功  ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate  アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例)     A    1 1 ←アクティブセルをコピー   5  ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub

  • VBA アクティブセルに対しての作業に関して

    -質問内容-VBA作成2つ- ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate アクティブセルを指定した段階で オフセット(縦下方向にO1991のセルに入れた数値分下に、ヨコに0) 移動しアクティブセルにする ------------------------------------------------------ ------------------------------------------------------ 別々のVBAでやりたいこと (1)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下にペースト(貼り付け) したい 例)     A    1 成功  ←アクティブセルをコピー   3 成功  ← ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate  アクティブセル~オフセットしたセルまでを最初にアクティブセルからコピーし →アクティブセル~オフセットしたセルまでペーストする ----------------------------------------- (2)これを、アクティブセルを指定した段階で セルの値をコピーして オフセット縦下にO1991.ヨコ0分下に アクティブセル~オフセットされたセル位置まで フィルダウンさせたい 例)     A    1 1 ←アクティブセルをコピー   5  ←オフセットセル 2つのVBAのやり方/プログラムの表記/組み合わせ方を 無知で愚かな私ですが どうかご教授のほど 宜しくお願い致します (>_<)謝↓ペコッ --------------------------------------- --------------------------------------- 変数を使うのでしょうか? セル範囲を指定するとして Range("ActiveCell:ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Active") となるのでしょうか? 又変数の使い方として Dim a As Range 又は Dim a As Objectになるのでしょうか この際代入として使うには a = ActiveCell b = ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0).Activate になるのでしょうか 本当に度々申し訳ないのですが 宜しくお願いします (:>_<:)ペコリ Range(ActiveCell).copy ActiveCell.Offset(RowOffset:=[O1991], Columnoffset:=0)ActiveCell.PasteSpecial End Sub

  • VB2008のラジオボタンについて教えて下さい。

    VB2008で開発をしています。 フォーム上にラジオボタンを3つ配置し、グループ化しています。  ラジオボタン1: radioBut0  ラジオボタン2: radioBut1  ラジオボタン3: radioBut2  グループボックス : GroupBox1 これらのラジオボタンのどれを True にするかを、変数 i で与えます。 Dim i AS Integer  i = 0 の時、radioBut0 を True にします。  i = 1 の時、radioBut1 を True にします。  i = 2 の時、radioBut2 を True にします。 これを、IF文を使わずに、簡潔にコーディングする方法がありますでしょうか。 おわかりの方、教えて下さい。 よろしくお願いします。

  • VBA エクセル

    回答が不十分の為再質問させていただきます。 http://oshiete1.goo.ne.jp/qa2837887.html 整理すると 現状の質問は貼り付け先の記載方法 貼り付け後の写真大きさ変更及びセル位置指定方法 (複数の写真あり) を質問中です 宜しくお願い申し上げます

  • Openoffice Calc の画像配置について

    Openoffice3.3のCalcの使い方について教えてください。 小さめの画像を一枚の表の中に複数配置したいのですが、 セルの中に挿入した画像の位置指定の仕方が分かりません。 挿入した画像を右クリックしたメニューの中の「配置」という項目は、 「何も選択できません」と表示されてしまいます。 また、同じく右クリックのメニューの中の「位置とサイズ」という項目でも、 位置の数値指定をすれば配置位置は動きますがセルごとに一枚一枚指定するのが大変です。 やりたいことは、テキストの「右揃え」「中央揃え」のように、 挿入した画像にも手軽にセルの中で位置指定がしたいのです。 分かりづらい文章で申し訳ありませんが、ご存知の方居ましたら回答宜しくお願い致します。

  • エクセルVBAのオプションボタンがうまくいきません 

    エクセルのVBAでフォームをつくり 3つのオプションボタンを配置し チェックした項目のとき、指定したセルに「レ」の印を書き込ませたいのですが、うまくいきません。 同じフォーム内のテキストボックスやコンボボックスの内容はうまくセルに書き込めるのですが・・・ オプションボタンのグループは設定してあります。 下のように記述したのですが、なぜ思うように動作しないか教えてください。 If オプション(3) = True Then ActiveCell.Value = "レ" ElseIf オプション(1) = True Then Range("H21").Value = "レ" ElseIf オプション(2) = True Then Range("H23").Value = "レ" End If

専門家に質問してみよう