Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


12260 / 13644 ツリー ←次へ | 前へ→

【11445】テキストボックスの選択 カド 04/3/9(火) 13:13 質問
【11447】Re:テキストボックスの選択 Jカーター 04/3/9(火) 13:21 回答
【11449】Re:テキストボックスの選択 カド 04/3/9(火) 14:32 質問
【11450】Re:テキストボックスの選択 IROC 04/3/9(火) 14:44 回答
【11454】Re:テキストボックスの選択 カド 04/3/9(火) 14:58 質問
【11461】Re:テキストボックスの選択 Jカーター 04/3/9(火) 16:08 回答
【11462】Re:テキストボックスの選択 カド 04/3/9(火) 16:26 質問
【11463】Re:テキストボックスの選択 Jカーター 04/3/9(火) 16:33 回答
【11467】Re:テキストボックスの選択 カド 04/3/9(火) 16:50 質問
【11468】Re:テキストボックスの選択 Jカーター 04/3/9(火) 16:52 発言
【11469】Re:テキストボックスの選択 Jカーター 04/3/9(火) 16:58 回答
【11471】Re:テキストボックスの選択 カド 04/3/9(火) 17:08 お礼
【11475】Re:テキストボックスの選択 カド 04/3/9(火) 17:21 お礼

【11445】テキストボックスの選択
質問  カド E-MAIL  - 04/3/9(火) 13:13 -

引用なし
パスワード
   便利なマクロを詰め込んだエクセルファイルを常に起動させて使っています。

そのときに、そのファイルが非表示のほうが見栄えがいいのでそうしてます。

このように非表示になっているファイルのシートに書かれたテキストボックスや
セルをコピーする場合、

一旦、表示に戻しアクティブにする必要が有るのですか?
それとも非表示のまま選択出来るのでしょうか?

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

【11447】Re:テキストボックスの選択
回答  Jカーター  - 04/3/9(火) 13:21 -

引用なし
パスワード
   こんにちは。
選択しないと処理できないという考えは捨てましょう。
(どんなオブジェクトに対しても言えることです。もしかすると例外有り?)
選択しなくてもコピーは可能です。

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Sheet3.TextBoxes(1).Copy
  Sheet2.Paste

【11449】Re:テキストボックスの選択
質問  カド E-MAIL  - 04/3/9(火) 14:32 -

引用なし
パスワード
   ▼Jカーター さん 回答ありがとう御座います。

確かに出来ることは、実際にやってみて確認しました。

いつもはアクティブにしてセレクトしてから処理していたので、非表示のままの方法が分かりません。

以下のことを代表事例として教えてください。

*********************************:

非表示になっているBook(ファイル "aaa")のSHEET1に
Bookを非表示のまま

テキストボックスを追加し、
その中に”ABC”の文字を書き込み、
文字を赤字に、
テキストボックスを赤枠に

する方法を教えて下さい。

【11450】Re:テキストボックスの選択
回答  IROC  - 04/3/9(火) 14:44 -

引用なし
パスワード
   >
>非表示になっているBook(ファイル "aaa")のSHEET1に
>Bookを非表示のまま
>
>テキストボックスを追加し、
>その中に”ABC”の文字を書き込み、
>文字を赤字に、
>テキストボックスを赤枠に
>
>する方法を教えて下さい。

表示しているときに動作するコードを提示していただければ、
非表示でない場合に動作するコードに添削できますが・・

【11454】Re:テキストボックスの選択
質問  カド E-MAIL  - 04/3/9(火) 14:58 -

引用なし
パスワード
   ▼IROC さん 回答ありがとう御座います。

以下のコードで添削お願いします。

セルA1に”鈴木”と入力してある。
Range("b5:b7")にハンコの形をした図形が作成される。
マクロによりハンコがコピーされているので、貼りたいところにペーストする。

Sub 印鑑()

  '(円、x位置、y位置、x長さ、y高さ)
  ActiveSheet.Shapes.AddShape(msoShapeOval, 60, 60, 30, 30).Select
  
  '透明に
  Selection.ShapeRange.Fill.Visible = msoFalse
  
  '輪郭線の太さを設定
  Selection.ShapeRange.Line.Weight = 1.5

  'ラインを赤色に
  Selection.ShapeRange.Line.ForeColor.SchemeColor = 10
  
  'テキストボックスの追加
  ActiveSheet.Shapes.AddTextbox(msoTextOrientationVerticalFarEast, 60, 60, 30, 30).Select
  
  '背景を透明に
  Selection.ShapeRange.Fill.Visible = msoFalse

  'ラインを透明に
  Selection.ShapeRange.Line.Visible = msoFalse
  
  '文字の書き込み
  Selection.Characters.Text = Range("a1")


  '(処理開始文字位置、終了文字位置)
  With Selection.Characters(Start:=1, Length:=3).Font
    .Name = "MS Pゴシック"
    .FontStyle = "太字"
    .Size = 11
    .ColorIndex = 3
    
  End With
  
  '文字を横中央に
  Selection.HorizontalAlignment = xlCenter
  

  '絵としてコピー
  ActiveSheet.Range("b5:b7").CopyPicture xlScreen, xlBitmap
  
End Sub

【11461】Re:テキストボックスの選択
回答  Jカーター  - 04/3/9(火) 16:08 -

引用なし
パスワード
   こんにちは。
例なので非表示ブックまで作ってます。
---------------------------------------------------------------------
Sub test1()
  Dim i As Long
  
  With Workbooks.Add
    i = Windows.Count
    Windows(.Name).Visible = False
    With .Sheets(1).TextBoxes.Add(1, 1, 100, 15)
      .Text = "Jカーター"
      .Font.Color = vbRed
      .ShapeRange.Line.ForeColor.RGB = vbRed
      .Copy
    End With
  End With
'  ここまで非表示のブックに対する処理です。
  
'  非表示ブックにあるTextboxをコピペ
  ThisWorkbook.Sheets(1).Paste
  
'  ここで作ったブックを表示(見えないと確認できないので)
  Windows(i).Visible = True
End Sub

【11462】Re:テキストボックスの選択
質問  カド E-MAIL  - 04/3/9(火) 16:26 -

引用なし
パスワード
   ▼Jカーター さん 回答ありがとう御座います。

非常にシンプルですばらしいですね。

大変申し訳ないのですが、既存のブックに対して同じ処理をする場合どうすれば
よいのでしょうか?

何度も申し訳ないですが、ぜひ教えて下さい。

【11463】Re:テキストボックスの選択
回答  Jカーター  - 04/3/9(火) 16:33 -

引用なし
パスワード
   こんにちは。
別ブックがBook7だとして(非表示でおためし下さい。)
------------------------------------------------------------
  With Workbooks("Book7")
    With .Sheets(1).TextBoxes.Add(1, 1, 100, 15)
      .Text = "Jカーター"
      .Font.Color = vbRed
      .ShapeRange.Line.ForeColor.RGB = vbRed
      .Copy
    End With
  End With
  ThisWorkbook.Sheets(1).Paste

【11467】Re:テキストボックスの選択
質問  カド E-MAIL  - 04/3/9(火) 16:50 -

引用なし
パスワード
   ▼Jカーター さん 回答ありがとう御座います。

またまた、うまく行きました。

慣れない処理で分からないことだらけなのですが、

テキストボックスを作るときに名前も指定して付ける。
コピーした後は作成したテキストボックスは不要なので削除する。

という処理も追加したいのですが。

【11468】Re:テキストボックスの選択
発言  Jカーター  - 04/3/9(火) 16:52 -

引用なし
パスワード
   こんにちは。
何故コピーが必要なのですか
最初からコピペ先のシートに作ってしまえばいいのに?

【11469】Re:テキストボックスの選択
回答  Jカーター  - 04/3/9(火) 16:58 -

引用なし
パスワード
   こんにちは。
一応やり方を書いておきますが
なんか無駄です。(別ブックに作るところが・・・)

名前はWithの中で設定できます。
    With .Sheets(1).TextBoxes.Add(1, 1, 100, 15)
      .Name = "Jカーター"


消すのは
Copy

Cut
にするだけでいいと思います。

【11471】Re:テキストボックスの選択
お礼  カド E-MAIL  - 04/3/9(火) 17:08 -

引用なし
パスワード
   ▼Jカーター さん 回答ありがとう御座います。

理解できました。

【11475】Re:テキストボックスの選択
お礼  カド E-MAIL  - 04/3/9(火) 17:21 -

引用なし
パスワード
   ▼Jカーター さん 回答ありがとう御座います。

親切に何度もありがとう御座いました。
ついつい一つのことが分かると次の疑問が沸いて申し訳有りませんでした。

>何故コピーが必要なのですか
>最初からコピペ先のシートに作ってしまえばいいのに?

1.このソフトは自分だけでなく、回りの人にも使ってもらおうとしました。
2.印鑑を適切な位置に移動する作業を想定して、
  円とテキストボックスをグループ化して印鑑を作ろうとしました。
3.グループ化する時に、既にそこにある全然関係ないオブジェクトが
  一緒にグループ化されないように、ユーザーのファイルではなく
  プログラマーが作った非表示のファイルに作成しようと考えました。

理由は以上です。

12260 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free