- ベストアンサー
アプリケーション自体のサイズを設定したい エクセル
エクセルでウインドウのサイズは、 Sub Macro1() With ActiveWindow .Top = 0 .Left = 0 .Width = 300 .Height = 300 End With End Sub で自分の好きな大きさにできますが、 アプリケーション自体のサイズを上記のように細かく指定するにはどうすればいいでしょうか? APIを使うのでしょうか? コードをご教授いただけますか?
- vtrosaigwcq
- お礼率100% (37/37)
- オフィス系ソフト
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。お邪魔します。 たぶん、こういうことだと思います。 Sub Re8078857() With Application .WindowState = xlNormal .Top = 100 .Left = 150 .Width = 700 .Height = 400 End With End Sub こちらの理解が至ってないようでしたら補足してください。
その他の回答 (1)
- bin-chan
- ベストアンサー率33% (1403/4213)
> アプリケーション自体のサイズを上記のように細かく指定するには ここでいう「アプリケーション」とは何ですか?詳しく教えてください。
お礼
なんて言えばいいのでしょう?ウインドウの外枠です。
関連するQ&A
- エクセルのウインドウをど真ん中に表示したい
Sub Macro2() Dim i As Long Dim j As Long i = Application.UsableHeight / 20 j = Application.UsableWidth / 40 With ActiveWindow .Top = i .Left = j End With With ActiveWindow .Height = i * 18 .Width = j * 38 End With End Sub これで、エクセルのアプリケーション内にウインドウを表示させたくて、 上下左右同じ長さの空白を入れたいのですが 左側の空白が多いです。 何故均等にならないのでしょうか?
- ベストアンサー
- その他MS Office製品
- EXCEL2000でInitialize時にListBoxが希望する大きさにならない
EXCEL2000 OSはWIN XPを使用しています。 マクロの処理途中でUserFormを表示させる際に大きさを指定したいのですが、ListBoxが希望通りの大きさにならない場合があります。以下のコードではダメなのでしょうか? ちなみに、エクセルを立ち上げ直後にマクロ実行した際にはほぼ100%の確立でListBoxは指定したサイズにならず、ディフォルトの大きさのままになり、逆に下記のようにMSGBOXを挿入すると確実に希望通りのサイズとなります。 いろいろ試しましたが、対処方法が分かりません。よろしくお願いします。 Private Sub UserForm_Initialize() 'MsgBox "これを入れるとListBox1は確実に希望の大きさになります" With UserForm1 .Top = 30 .Left = 10 .Width = ActiveWindow.Width - 30 .Height = ActiveWindow.Height .ListBox1.Top = 50 .ListBox1.Left = 15 .ListBox1.Width = .Width - 32 .ListBox1.Height = .Height - 85 End With End Sub
- ベストアンサー
- オフィス系ソフト
- UsableHeight シート名が消える
エクセルvbaでリボンを非表示にして、ブックを最大化して、微調整したいのですが Workbook_Openイベントで実行すると、シート名が見えない状態になります。 コードはこれです。 Private Sub Workbook_Open() Application.ExecuteExcel4Macro "SHOW.TOOLBAR(""Ribbon"",False)" 'リボンを非表示にする ActiveWindow.WindowState = xlMaximized 'ウィンドウを最大化する With ActiveWindow .WindowState = xlNormal .Top = 0 .Left = 0 .Width = Application.UsableWidth .Height = Application.UsableHeight ' ウィンドウが使うことのできる範囲の最大限の高さにする End With End Sub ブックを開いた時はシート名が見えないサイズになってしまうのですが もう一度手動でWorkbook_Openイベントを実行すると、ちゃんとシート名まで表示されます。 なぜ同じコードなのに結果が違うのでしょうか? 横幅に関しては1回目も2回目も同じです。
- ベストアンサー
- Excel(エクセル)
- ExcelVBA ウィンドウサイズをリサイズしない
いつもお世話になっています。 ActiveWindow でウィンドウサイズを固定することはできるのですが、 Applicationのウィンドウサイズを固定することができません。 VBAではできないのでしょうか。 教えてください。 以下を実行すると、「オブジェクトをサポートしていません」とエラーが表示されます。 Sub Auto_Open() With Application .WindowState = xlNormal .Width = 600 .Height = 400 .EnableResize = False '---ウィンドウサイズを変更できない End With End Sub
- ベストアンサー
- オフィス系ソフト
- Excelセルのサイズに合わせて画像を表示させたい
Excelのセルの中に、画像ファイル(撮影された写真)のサイズを挿入するときに、セルのサイズに合わせて画像を表示させたいと考え、インターネット上でVBの下記のマクロを探してみました。 セルをダブルクリックすると、画像ファイルの読み出しが行なわれるのですが、セルのサイズにピッタリと合わず、 「列」にわずかに隙間が空いてしまいます・・・。 セルのサイズに合わせる為にはどうすればよいでしょうか? もう一つ質問させていただきたいのですが、一部の画像は読み出しだ際に、縦にして自動的に表示させたいです。 (これまではExcelの「図の書式設定」で-90度と手入力していました) 何卒宜しくお願い致します。 Excel2003 Visual Basic 6.5 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Dim myPic Dim myRange As Range '画像を配置するセル範囲 Dim rX As Double, rY As Double myPic = Application.GetOpenFilename("画像ファイル,*.jpg;*.jpeg;*.gif;*.tif") If VarType(myPic) = vbBoolean Then Exit Sub Set myRange = Target 'このセル範囲に収まるように画像を縮小する Application.ScreenUpdating = False With ActiveSheet.Pictures.Insert(myPic).ShapeRange rX = myRange.Width / .Width rY = myRange.Height / .Height If rX > rY Then .Height = .Height * rY Else .Width = .Width * rX End If .Left = .Left + (myRange.Width - .Width) / 2 '写真を横方向の中央に配置 .Top = .Top + (myRange.Height - .Height) / 2 '写真を縦方向に中央に配置 End With Application.ScreenUpdating = True Cancel = True End Sub
- 締切済み
- その他MS Office製品
- エクセル2007のVBAの困りごと
教えてください。 画像挿入時にエクセルのセルの大きさに合わせるマクロを使っているのですが、エクセル2000、2003では問題なく動くのですが、2007だと、うまくVBAが動かず、画像が縮小・拡大されません。 わかるかた教えてください。 コード Dim c As Range, cm As Range Application.ScreenUpdating = False For Each c In Selection Set cm = c.MergeArea If c.Address = cm.Item(1).Address Then If Application.Dialogs(xlDialogInsertPicture).Show = False Then Exit Sub With Selection .Left = cm.Left .Top = cm.Top .Height = cm.Height .Width = cm.Width End With End If Next Set cm = Nothing
- 締切済み
- オフィス系ソフト
- エクセルで貼り付けた写真のサイズを減らすためにコピーしましたが、位置がうまく行きません
以前、エクセルにマクロで貼り付けた写真のサイズを減らすために、コピーする方法を教えて頂いたのですが、 下のように書いたコードでは指定した位置にコピーの写真が貼り付きません。 どこがおかしいのでしょうか? sFile = pathname & "\" & filemei & ".jpg" Set myPic = ActiveSheet.Pictures.Insert(sFile) j = ((2 * i) \ 10) * 2 + 2 ←表示させたいセルの行 k = (2 * i) Mod 10 + 2 ←表示させたいセルの列 With myPic.ShapeRange .Left = Cells(j, k).Left .Top = Cells(j, k).Top .LockAspectRatio = msoFalse ' ↓サイズを指定 .Height = Cells(j, k).Height .Width = Cells(j, k).Width End With myPic.Locked = True '上の写真をコピーして貼り付け、下の写真を削除する With myPic .Copy ActiveSheet.Pictures.Paste .Left = Cells(j, k).Left .Top = Cells(j, k).Top ←このセル位置にコピーを貼り付けたいのですが '元の写真を削除 .Delete End With 以上のようなコードです。 コピー元の写真は指定どおりの位置に表示された後削除されますが、 コピーした写真は全て最初のコピー位置に張り付いてしまいます。 画像の扱いをよく理解していませんのでおかしな所も多々あると思いますが よろしくお願いします。
- ベストアンサー
- Visual Basic
- パワーポイントVBAでグラフのサイズ・位置を統一
パワーポイントVBAに貼付けた複数のグラフサイズを統一したいと思っています。 1~20枚目のスライドに、それぞれ2つのグラフが貼付けてあります。 全てのグラフサイズ・位置を統一したいと思い、以下の様なVBAを書いてみました。 ---------- Sub 表サイズの統一() Dim myTop1, myLft1, myHgt1, myWdt1, cnt, i, myTop2, myLft2, myHgt2, myWdt2 With ActivePresentation.Slides(1).Shapes(1) myTop1 = .Top myLft1 = .Left myHgt1 = .Height myWdt1 = .Width End With With ActivePresentation.Slides(1).Shapes(2) myTop2 = .Top myLft2 = .Left myHgt2 = .Height myWdt2 = .Width End With cnt = ActivePresentation.Slides.Count For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(1) .Top = myTop1 .Left = myLft1 .Height = myHgt1 .Width = myWdt1 End With Next For i = 2 To cnt With ActivePresentation.Slides(i).Shapes(2) .Top = myTop2 .Left = myLft2 .Height = myHgt2 .Width = myWdt2 End With Next End Sub ---------- 各スライドにある1つ目のグラフのサイズは統一出来たのですが、2枚目のグラフは何の変化もおきません。 どこが悪いのか、どなたかご教示頂ければ幸いです。 どうぞよろしくお願い致します。
- ベストアンサー
- オフィス系ソフト
- エクセルVBAのウィンドウサイズ変更でエラー
エクセル2000で、ファイルを二つのウィンドウに表示させて作業を行うのに、Auto_Openのマクロでサイズの調整を行っていましたが、ある日を境にエラーが出て動かなくなってしまいました。エラー発生前に、特別な事を行ったという自覚はありません。 マクロの内容は、次の通りです(抜粋) Dim fname1, fname2, windowname1, windowname2 As Variant Sub Auto_Open() fname1 = ActiveWorkbook.Name windowname1 = fname1 Windows(windowname1).Activate With ActiveWindow .Top = 4 .Left = 4 .Width = 630 .Height = 460 End With (省略、2つ目のファイルを開いて、上と同様にウィンドウ2のサイズ設定) End Sub エラーの内容は次の通りです 実行時エラー1004 Window classのTOPプロパティを設定できません。 TOPの所をコメントにして実行させると、次のLeftでやはりエラーとなります。 この日以降ずっと駄目なので、このマクロの部分は機能しないようにして今日に至っております。 原因と対処の仕方を教えて下さい。
- ベストアンサー
- オフィス系ソフト
- Excel VBA でグラフタイトルの位置変更
Excelで作成したグラフのタイトルの、(左の位置や幅は文字数で違ってくるので、)TopとHeightを、VBAを使って変更しようと思っています。 それで、以下のようなコードを書いてみたのですが、 「引数の数が一致しません または不正なプロパティを使用しています」 とのエラーメッセージが出てしまい、実行できません。 ChartTitle.Left などの引数の型はDoubleのようなので、 ' Dim T, L, H, W As Double としてみましたが、変化はありません。 Sub ChangeChartTitlePos() 'Excel VBA でグラフタイトルの位置変更 ' Dim T, L, H, W As Double T = 2: L = 68.4: H = 26.4: W = 220 With ActiveChart.ChartTitle .Top = T .Height = H ' .Left = L ' .Width = W End With End Sub どなたか解決方法をご教授頂ければ幸いです。 また、VBAを使わずにグラフのタイトルのTopとHeightを任意の値に変更する方法がありましたら、その方法も教えて頂ければと存じます。 よろしくお願いします。 追記 ちなみに、プロットエリアの変更は、以下のコードで処理できています。 Sub ChangePlotArea() With ActiveChart.PlotArea .Top = 36.4 .Left = 7 .Height = 190.6 .Width = 274.5 End With End Sub
- ベストアンサー
- その他MS Office製品
お礼
こういう事です!うまくできました。私の言ってることが伝わっていてうれしいです。 有難うございます。