559 :
名無しさん@お腹いっぱい。 :2006/02/21(火) 20:58:59
>>558 さん、537です。お世話様になります。
知らない関数が・・・2つも。
私も自分なりにいろいろ調べて、
『Ctrl』+『Shift』+『Enter』で確定する配列関数というのを見つけました。
これならIFとMAXで何とかなりそうかな?と思っていたのですが今一使い方を把握してないのです。
このところ他の仕事が忙しくて確認できませんでしたが、
558さんのを明日会社で確認してみます。(実は自宅にExcelは入ってない・・・)
560 :
名無しさん@お腹いっぱい。 :2006/02/21(火) 21:05:44
急いでる時にワードで文章作ると気が狂いそうになる
561 :
名無しさん@お腹いっぱい。 :2006/02/21(火) 21:39:15
やっぱり文章作る時はエクセルでしょ
ワード結構使ってる。 PDFのしおりを作るのがワードだと結構簡単にできるから。
バグって腹立ててる姿が目に浮かびます。(−−;
564 :
名無しさん@お腹いっぱい。 :2006/02/21(火) 22:08:45
>>559 試したら、なるほどちゃんとできてるよ。
>>558 の「A15」を10行20列にしてもちゃんと正解を返してくる。
構文読むと、
CONCATENATE >をB1に付け加える
COUNTIF A1〜A15でB1より大きいセルの数を数えて○個と返す
LARGE A1〜A15の中で、上から○番目の数字を返す
こういったところ、エクセルってパズルみたいで面白いよね。
565 :
名無しさん@お腹いっぱい。 :2006/02/21(火) 22:18:13
そういや社内で飛び交ってる添付ファイルって DOCは壊滅したかな? PDF、TIFたまにXLS。
>>558 さん、
>>564 さん、537です。希望の答えが出ました。どうもです。
以下は参考までに自分がたどり着いた方法を。同じようにA15までで
=MIN(IF(A1:A15>B1,A1:A15,""))
をC1に記入、確定するとき『Ctrl』+『Shift』+『Enter』すると、
{=MIN(IF(A1:A15>B1,A1:A15,""))}
"{"と、"}"は書き込んではダメです。
これ配列関数というらしいですが、これも結構使えそうです。
「博士の愛した数式」読んだので、こんなプログラムを書いてみました。 Sub 素数() k = 1 Cells(1, 1) = 1 For i = 2 To 10000 ' 好きなところまで For j = 2 To k If Int(i / Cells(j, 1)) * Cells(j, 1) = i Then Exit For End If Next j If j = k + 1 Then k = k + 1 Cells(k, 1) = i End If Next i End Sub
568 :
名無しさん@お腹いっぱい。 :2006/02/24(金) 03:22:02
569 :
名無しさん@お腹いっぱい。 :2006/02/24(金) 03:30:09
インデントないと読みにくうてかなわん
570 :
名無しさん@お腹いっぱい。 :2006/03/04(土) 10:00:26
EXCELのシート上でツリー構造のテーブルリンクをつくるには どうしたらいいでしょうか?
571 :
名無しさん@お腹いっぱい。 :2006/03/18(土) 08:34:26
みんな上級者なんだねぇ・・・。
572 :
名無しさん@お腹いっぱい。 :2006/03/18(土) 08:38:37
いやいや、まだまだですよ。まだまだ そうねェ、中の下ってところでしょうか、その程度ですよ。
573 :
名無しさん@お腹いっぱい。 :2006/03/18(土) 09:04:27
VBAって覚えりゃすげー便利なんだろけどなー・・・・・。
575 :
名無しさん@お腹いっぱい :2006/03/32(土) 21:36:03
VBA使えるようになれば便利なだけじゃなかったよ^^ 仕事してて、これVBAでできるんだろなぁ〜なんていつも思ってて、 家で密かに本買って、VBAを勉強。。でもやっぱ敷居高すぎで挫折 しそになったが、ある時、ある処理のたった一行を何時間も考え抜いて 出来た時は、嬉しくて仕方なかった。そのお陰でなんとかかんとか完成! で、マクロを会社でお披露目した時、周りの眼差しが変わったのが なんとも快感でしたよ。 あーこーゆー副産物まで付いてくるんだってVBA覚えてよかったとほんと思いました
576 :
名無しさん@お腹いっぱい。 :2006/03/32(土) 21:43:22
577 :
名無しさん@お腹いっぱい。 :2006/03/32(土) 22:06:20
しばらくこなかったが、このスレのレベルも上がったな おかげでおれにはついていけないけどな
578 :
名無しさん@お腹いっぱい。 :2006/04/09(日) 03:07:26
今でもWORDですか?
579 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 09:17:52
それでは初心者の質問をばw ひとつのセル(A1)で 朝4時〜10時に打ち込むと「おはようございます」(かぎかっこはいりません) 10時〜17時は「こんにちは」 17時〜翌4時は「こんばんは」 と表示するようにはどうしたらいいか教えてください。<m(__)m> よろしくお願いします。
580 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 16:48:52
あの・・・誰か教えてくださいil||li _| ̄|○ il||li
581 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 16:54:15
>>579 質問はちゃんとしましょう
ひとつのセル(A1)で
朝4時〜10時に打ち込むと・・・何を打ち込むんですか・・
それによって・・関数かマクロか・・易しい方お教えいたします。
582 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 16:57:44
時間取得の関数使えば簡単だけどね、、
583 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 17:03:57
もしも 今の時間が4時〜10時なら おはようございます これを関数にするだけ・・簡単でしょ
584 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 17:06:47
OS:Xpホームエディションに、正規品オフィス2000を入れてもいいのですよね また、インストールしても動きますよね
585 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 17:09:54
>>584 動きますが、起動するたびに
「ビル・ゲイツ様〜ありがとうごぜえますだ〜〜」
と三拝の義務が生じます
586 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 17:43:55
>>585 笑 そうなんですか?同じ40代のゲイツさんも良い人ですね^^
587 :
名無しさん@お腹いっぱい。 :2006/04/11(火) 19:00:59
Sub aisatu() Static flgf As Boolean 'スタティックな変数flgを宣言 If flg then Exit Sub Else flg = True '1回しか出さないようにする ' Select Case Hour(Now) '今の時間で分岐 Case 4 To 11: MsgBox "おはようございます" Case 12 To 17: MsgBox "こんにちは" Case Else: MsgBox "こんばんは" End Select End Sub
588 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 17:41:40
>>579 です。
>>581さん、そうでした。すみません。
ひとつのセルに現在の時間を打ち込むと、その時間によって
その時間にあった挨拶を表示させたいです。
できれば関数でお願いしたいです。
>>583 さんのいってるやつです。
>>587 さんが作ってくださったのは、マクロなんですか?
このままA1にコピペしていいんでしょうか?
589 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:25:44
NOW関数 HOUR関数 IF関数を極めなさい
590 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:36:04
>>587 Sub auto_open()
にすれば自動実行されるよ
591 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:47:06
>>589 どうもIF関数が苦手系なんですorz
でもがんがってみました。これでいいでしょうか・・
=IF(A1<3,"おはようございます",IF(A1>17,"こんばんは","こんにちは"))
ちょっと時間が変わってしまいました(汗
これはA1にNOW関数入れて引っ張らないと表示されないんだけど。
592 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:48:34
>>590 ありがとうございます。マクロなんですよね。
ますますワケワカメですorzちょっとやってみます
593 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:53:34
おしい =NOW(HOUR()) かな
594 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 18:57:29
逆だった =HOUR(NOW())
595 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 19:18:18
なんかダメダメdeath. 夜ご飯作らないといけないので明日までの宿題にしますorz
596 :
名無しさん@お腹いっぱい。 :2006/04/12(水) 19:23:11
ネスト入り関数は奥が深いなあ
597 :
名無しさん@お腹いっぱい。 :2006/04/19(水) 22:28:04
598 :
名無しさん@お腹いっぱい。 :2006/04/20(木) 00:08:00
エクセルでもプレビュー表示を無効にするとファイルサイズ小さくなるよ
599 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 07:58:20
こんにちは 会社の業務日報のExcelファイルを開くと癒しの音楽が流れるようにしています。 こんな感じです ↓ Sub SOUND_ON() Dim SoundFile As String SoundFile = "C:\Documents and Settings\Okure¥my Music\\SOUND08.mp3" If Dir(SoundFile) = "" Then MsgBox SoundFile & vbCrLf & "がありません。", vbExclamation Exit Sub End If Shell "mplay32.exe /play /close " & SoundFile End Sub でも、これだと問題があるのです。 Excelを閉じても、mp3playerが残って、サウンドがなり続けてしまうのです。 Excelを閉じたときに、サウンドも終わるようにするには どうしたら良いでしょうか? ご教授お願い致します。
600 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 09:48:54
@ SOUND_ON()のブロックをプロシージャと呼ぶんですが、 プロシージャの一番上に次の2行をコピーします。 但し、一番上に、Option Explicitという行があったら、その下にコピーしてくらさい。 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long これはウィンドウを探す関数と、ウィンドウにお知らせをする関数です。 A 次の5行のプロシージャを追加します。 Sub Auto_CLose() Dim h& h& = FindWindow("WMPlayerApp", "Windows Media Player") If h& <> 0 Then PostMessage& h&, &H12, 0&, 0& End Sub 内容は、ブックが閉じられる時に、 クラス名がWMPlayerAppでタイトルがWindows Media Playerというウィンドウを探して 見つかったら、そのウィンドウに「消えてちょ」とメッセージを送ります。 (&h12は消えてちょの意味でWM_QUITでぐぐれば確認できます) 見つからなかったら何もしません。
601 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:00:32
早速のご教授、有り難く思います。 助かります。 AのSub Auto_Close( )は、 workbookのbefore close のところに、このサブルーチン コールを 仕込めば良いのでしょうか?
602 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:09:01
エクセルはよく判らないです。 それよりmplay32.exeってWindows Media Playerですか? じゃなかったら、上の方法を使うには、 そのアプリケーションのクラス名を調べないといけないのですが 調べるにはspy++.exeというツールが必要なのでダメですね。
603 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:16:58
>mplay32.exeってWindows Media Playerですか?
そうです。WMPです。
bookを開いたときに
>>599 のサブルーチンをコールするようにしてます。
そうすると、WMPの縮小版がタスクトレイに出て、サウンドが鳴ります。
bookを閉じるときに動くルーチンでAをコールすればよい。
と言うことですよね。
604 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:23:08
うちのWMPのファイル名はwmplayer.exeだけどクラス名は同じかな? これはやってみれば判るとして、 コードの追加は、 bookを開いたときに実行してるものがあるなら Sub Auto_Open( )があるはずですね。 そこに追加すればいいれす
605 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:31:22
mplay32.exeって、現状最新版のWMPじゃなくて 旧型のWMPらしいです。 小生はXPホームですが、旧型のWMPも入っています。 旧型だとタスクトレイに小じんまりと、目立たないように出るので こっちの方がいいと、解説されていたので、これを使ってます。
606 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 10:44:06
クラス名を検索条件に入れないで h& = FindWindow(VbNullString, "Windows Media Player") でもいいみたい。 "Windows Media Player"の部分はウィンドウのタイトルを全く同じに キッチリ指定しないといけません
607 :
名無しさん@お腹いっぱい。 :2006/04/29(土) 11:40:55
色々とご教授、大変有難う御座いました。 参考になりました。 エクセル内では、 FindWindow("WMPlayerApp", "Windows Media Player") の部分が、そのまま使えないようでした。 FindWindow( ) を内部サブルーチンとして認識してしまい、 ”そんなプロシージャーは定義されてません”っていうエラーになります。 また、いろいろネットで検索してみます。 ありがと。
608 :
名無しさん@お腹いっぱい。 :
2006/04/29(土) 21:09:05 ああ、がっかりっす。 それはFindWindowが定義されてないからです。 FindWindowの定義(Declare)は Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 掲示板で教えるのって難しい