Excel総合相談所 25

このエントリーをはてなブックマークに追加
>>919
できればフォントは小さくしたくないんです。

テキストボックスのサイズが変えられないんです。
伸縮の矢印が名前のテキストボックスにはなくて、
とりあえずクリックして大きくしようとすると、
テキストボックス自体の移動になってしまって・・・
やっぱりフォントサイズを小さくするしかないんですかねぇ?
グラフオプション、タイトルとラベルのY軸でしょ?
ボックスをクリックしたら黒い点が8つ枠線の上に表示されない?
そこを掴んで引き伸ばせると思うんだけど……
あ、駄目だ。駄目なのか
テキストボックスでラベルを付けたらどうですか?
グラフエリア選択状態で文字入力すれば
グラフ中央に自動的に作成されます。
あとはもうああしてこうすればOKですよ。
924918:04/08/01 15:43
>>921-923
ということは、
「新しくテキストボックスを作って
もともとあるテキストの上にもってくる」
ってことでいいのでしょうか?
これならできるし。めんどくさいけど(´・ω・`)

皆さん、ありがとうございました。
925899:04/08/01 16:12
903さんに作ってもらったマクロについてです。

これって5*5の行列対応のようですが、
行列のサイズに関係なく、1列に変換するようにするには
どうすればいいのでしょうか?

よろしくお願いします。
926名無しさん@そうだ選挙にいこう:04/08/01 16:35
SUMすると1の位が四捨五入(切捨て?)されるんだけど、どうしてですか?
927903:04/08/01 17:29
>>925
こう変える。Application.ScreenUpdatingの行はおまけ。

Sub lower_triangleを1列にする()
 Dim ColumnCount As Long
 Dim RowCount As Long
 Dim RowMax As Long
 
 Application.ScreenUpdating = False
 
 Worksheets("Sheet1").Select
 RowMax = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row
 
 Worksheets("Sheet2").Select
 Range("A1").Select
 
 ColumnCount = 1
 RowCount = ColumnCount
 
 Do Until ColumnCount > RowMax
  ActiveCell.Value = Worksheets("Sheet1").Cells(RowCount, ColumnCount).Value
  ActiveCell.Offset(1, 0).Activate
  RowCount = RowCount + 1
  If RowCount > RowMax Then
   ColumnCount = ColumnCount + 1
   RowCount = ColumnCount
  End If
 Loop

 Application.ScreenUpdating = True
End Sub
>>926
その状態が再現できるようなデータを提示してください。
929名無しさん@そうだ選挙にいこう:04/08/01 17:54
教えてくだせー
下記のようなコードで、Sheet1のロックしてないセルを一括削除してるんですけど、
Sheet2のロックしてないセルも一緒に削除するためには、どしたらよいのでしょうか??

Sub NotLockDelete()

Application.ScreenUpdating = False
Dim c As Range

For Each c In ActiveSheet.UsedRange
If Not (c.Locked) Then c.ClearContents
Next
Application.ScreenUpdating = True
End If
End Sub
>>929
Sheet2に移動して、もう1回マクロを実行させればいいんじゃないでしょうか。

Sub NotLockDelete()

 Application.ScreenUpdating = False
 Dim c As Range

 For Each c In ActiveSheet.UsedRange
  If Not (c.Locked) Then c.ClearContents
 Next
 Application.ScreenUpdating = True

 If ActiveSheet.Name <> "Sheet2" Then
  Worksheets("Sheet2").Select
  Call NotLockDelete
 End If
End Sub
931929:04/08/01 18:18
>>930
ご解答ありがとうございます!
なるほど、納得です!こんな発想全然浮かびませんでした!!

Sheet1にマクロボタンを配置しているのですが、
1回のクリックで実行するのは難しいんでしょうか?
932929:04/08/01 18:26
>>931
すみません。1回のクリックで出来るんですね!
このマクロ実行時にメッセージボックスで警告を出していたので、、、

マクロを呼び出すのではなく、Sheet2のロックしていないセル削除する
マクロを、1つのコード化するのは、ムリなんでしょうか?
>>932
マクロはこうする。

Sub NotLockDelete(SheetName As String)

 Application.ScreenUpdating = False
 Dim c As Range

 For Each c In Worksheets(SheetName).UsedRange
  If Not (c.Locked) Then c.ClearContents
 Next
 Application.ScreenUpdating = True

End Sub

このマクロの呼び出しはこんな感じ。
Call NotLockDelete("Sheet1") 'Sheet1の場合
Call NotLockDelete("Sheet2") 'Sheet2の場合

934名無しさん@そうだ選挙にいこう:04/08/01 19:22
マクロの処理スピードを上げる方法ってありませんか?
935929:04/08/01 19:26
>>933
すみません。上記のコードはどこをどんな感じに直したらよいのでしょうか?
約1時間ほど試行錯誤してみましたが、ダメでした。。。
SheetNameを“Sheet1”にするだけじゃダメなんですよね?

>Sub NotLockDelete(SheetName As String)
>Call NotLockDelete("Sheet1") 'Sheet1の場合
>Call NotLockDelete("Sheet2") 'Sheet2の場合
上記の意味が理解できません。

せっかく書いていただいたコードなので是非利用したいです。
よろしくお願い致します。
>934
再計算をやめる。
再表示をやめる。
あたりが効果的かと。

with を使うと見通しは良くなるが速度には影響しないという説がある。
>>935
そのまま使えばいいんですけど・・・。

Sub NotLockDelete(SheetName As String) というのは、マクロの呼び出しに

Call NotLockDelete("Sheet1") とした場合、このSheetNameという変数に、
"Sheet1"という文字列が代入されます。
普通、マクロ内部で

Dim SheetName As String
SheetName = "Sheet1"

と変数を設定するところを、マクロ外部から変数の内容を設定しているということです。
マクロの中では、

For Each c In Worksheets(SheetName).UsedRange は、

For Each c In Worksheets("Sheet1").UsedRange

として処理されることになります。こうすれば、シート名だけ違うという場合、
同じコードの使い回しがきくわけです。
こんな説明でよろしいでしょうか。
938899:04/08/01 20:21
>>927
ばっちりです、ありがとうございました!
おかげさまでだいぶ仕事の効率があがりました!
939929:04/08/01 21:59
>>937
丁寧な説明ありがとうございました!!
940名無しさん@そうだ選挙にいこう:04/08/01 22:46
一定のセル範囲のうち、セルに色がついているのもの数を数える関数ってありませんか?
度々見かける質問ですね。
「塗りつぶし セル 数える」 これでググれば見つかるでしょう。

余談だけど、そもそも色は見た目を整えるためだけの機能であって、
それを手がかりに抽出やカウントをするのは賢いやり方じゃないぞと毎回思う。
何か専用のフィールドを作れよと声を大にして言いたい。
まあ、他人の作ったデータベースなら仕方がないが・・・
時々>>941みたいなやついるけど、
「〜でぐぐれ」じゃこのスレの意味がない。
943941:04/08/01 23:14
>942
じゃあ独自の方法でも転載でもいいんで書いといてください。
というか
>>156-157
945名無しさん@そうだ選挙にいこう:04/08/02 11:40
普通に起動すると、ひとつのウィンドウの中に
複数のエクセルがたちあがりますが
これをそれぞれバラバラなウィンドウに
したいのですが、どうしたらよいでしょうか
>>945
複数のExcelなど、立ち上がりませんが?
>>945
どんどんExcelアプリ起動すればいいじゃん。
{ミ田+R→Excelと書いてEnter}*α
で。
>>946
MDIがいやだ ということです
949LARA:04/08/02 13:52
改ページプレビューの『1ページ』とか出てくるのを
消したりできますか?
MDIがいやつったってMDIなんだから仕方ないべ。

そんなにいやならメモ帳でも使ってなさいな。
>>948
SDIでスレ内検索してみれば?
ま、タスクトレイに表示するだけの疑似SDIぽいやつだから閉じるボタンを押したら終わりだけどな
タスクトレイじゃなくてタスクバーだ 一応つっこまれる前に訂正
SDI のように使用すれば済むことだと思うのだが
新しいブック作成すんなら新たに Excel 起動すりゃいいし
ファイルをダブルクリックで開くのは拡張子の関連付けを弄りゃいいし
そういうことではないのか?
954名無しさん@そうだ選挙にいこう:04/08/02 15:20
excel97でシリアル値について教えてください。
時間の計算をしていて、270分(シリアル値0.1875)という数字がでてきて、270*A1という計算がしたいのですが、
0.1875*A1になってしまいます。
解決方法わかる方いましたらお願いします。
955948:04/08/02 15:48
OK
開く を DDEなし にしてやったぜ
フン
>>954
セルの書式設定>ユーザー定義で [m] とか [mm] とか
表示の問題なら ↑ で。270という数字が必要なら
 ×1440(シリアル値1=1440分)
958名無しさん@そうだ選挙にいこう:04/08/02 16:58
>957
解決しました。
ありがとうございました。
959名無しさん@そうだ選挙にいこう:04/08/02 21:25
金額
1,000
500
300
800

という、金額の列があるとして、未入力のセルには0を表示するようにできるものなんでしょうか?
質問です

線を引くためのツールを表示するにはどうしたらよいのでしょうか?
Excel 2000
OS ME
よろしくおねがいします。
>>959
どゆこと?予め0入力しといたらいいんじゃないの?
既に穴あきの表があって、空いてる所に0を入れるなら、
Ctrl+Hの置き換えで。

>>960
表示→ツールバー→図形描画
962名無しさん@そうだ選挙にいこう:04/08/02 23:35
質問どぇす

Sheetを保護したら、今まで正常に作動していたマクロが
作動しなくなっちゃんですけど、
こんな現象を解決するVBAのコードとかってあるんでしょうか?
>>962
そんときだけ保護を外せばいい。
もちろんコード上で。
まずマクロの記録してみ。
964962:04/08/02 23:50
>>963
こんな感じのコードでいいんでしょうか?
・・・でも、どこに記述していいもんか分かりませぬ。

ActiveSheet.Unprotect

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
965962:04/08/03 00:06
>>963
適当に最初と最後に入れてみたらうまくいきましたー
ありがとうございました!!
やらずに質問する典型だな。
一生技能なんてつかねーな。
>>966
あなたのおっしゃる通りです!
さすがに技術のある人は言うことが違うネ!!
この板、いつまで選挙なんだ?
969名無しさん@そうだ選挙にいこう
: ,illliii、                      ,,,,,、                       
..llllllll゜     .,,,,,,,,,,,,,,,,,,,,,,_     ,,,,,,,,,,illlllll,,,、      .,iiiiii,              
.lllllll「     llllllllllllllllllllllllllliii,,   !!!!lllllllllllllllll!      .,llllllll:  ,,,,,,           
illlllll        ̄`:  ゚゙゙゙̄!!lllllli、 __,,illlllll ̄:       ,lllllll゜ .゙lllllllii,,、        
llllllll    .,,,,,,           'lllllll llllllllllllllllllllllllll!     .,lllllll:   .'゙!llllllli,        
'lllllll,   ,illllll   :     ,,llllll!  ゙”lllllll゙”” ̄`iillii、  llllllllii,,,,   .'llllllll:   .,,,,,,    
.'lllllll,、  ,lllllll″ .llllllliiiiiiiiillllll!l°  .lllllll,    ,llllll|   lllllllllllllllli,,, ,,illlllll  .,illllllli,,iiiiiii, 
: ゙!lllllli,,iiiillllll!゙   ゚゙!!!!!!!!!!!゙゙`    llllllll,,  .,,iilllllll`  ..lllllll!゙゙゙!!llllllllllllll!!°  .゙lllllllllllllllll″
  '゙!!!llll!!!!゙°                ゙゙!lllllllllllllllll!゙°  ゙゙!!゙`  .゙゙゙゙!l゙゙゙゜    .llll!!゙゙゙゙゙゜ 
                         ゚゙゙゙゙゙゙゙゙°                   ″    

x軸の目盛の間隔とかグラフの棒の幅は固定しておいて
新しいデータをつぎ足したらそのぶんだけグラフエリア自体が横に広がるグラフってつくれますか
おしえてください