Excelに関する質問は、ここで!
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-10 あたりの注意書きやQ&Aを必ず読むこと。
★4 質問テンプレ(雛形)は必須じゃないけど、
OSやExcelのバージョン、VBAの可否など(下記テンプレ1〜4の情報)は必須情報。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。丸投げする場合は、必要に応じてブックをアップすること。
※【5】は、あなたがGoogleやヘルプで検索した際に使ったキーワードを書いてください。
まだ検索してないなら、質問の前にGoogleやヘルプで検索してみてください。
ttp://www.google.co.jp/ 前スレ
Excel総合相談所 74
http://pc11.2ch.net/test/read.cgi/bsoft/1223462844/
2get? 1乙
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━ ・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F) ・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意 ・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。何レス使っても構いません。 ・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。 ・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。 ・6 バグ・動作上の不都合・仕様に関する質問などはマイクロソフトのサポートを受けましょう。 ここは技術的な質問のみで。 ・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能でExcelに関係ないことも出来ます。 Excelの操作に関係ない部分は、スレ違いなのでここで聞かずにVB言語やAPI、COMについて自分で勉強し、 どうしてもわからない部分はVBスレやAPIスレなどの該当スレで質問しましょう。 但し向こうはプログラマのスレなので、構文規則などの最低限の事は覚えてから質問しましょう。 ここみたいに丸投げはダメですよ。 ・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。 例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。 その上で、どううまくいかないのかを具体的に書きましょう。 エラーが出るなら、何処でどういうエラーが出るのか、 想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。 ・9 マルチはダメ。一度マルチしたら、謝っても他のスレの質問を取り下げても回答は得られないと思ってください。 ・A テキストボックス(エディトボックス)、コンボボックス(ドロップダウンリスト)、リストボックス、コマンドボタン、 チェックボックス、オプションボタン(ラジオボタン)、スピンボタン、スクロールバー、等の質問をするときは、 ユーザーフォーム、コントロールオブジェクト、フォームオブジェクトのどれなのかを必ず書くこと。 ・B 書籍や解説サイトの紹介依頼はスレ違い。ここは技術的な質問のみで。
★ルールを無視すると…
>>1-2 あたりのルールに従うか否かは自由だけど、従わないと以下のような不利益があるよ
1.マルチをしてしまったら…
A.謝っても他での質問を取り下げても、以後その質問に対する回答は付かない物と思ってください。
それが嫌なら初めからマルチなんてしないように。
>>2 にマルチ禁止と書いてあり、
マルチの意味が分からなければ検索すれば出てくるので、「知らなかった」は通用しません。
2.
>>1 ★4に従わず、必要な情報を出さないと…
A.自分の使用しているバージョンで使えない機能を答えられたり、VBA使えないとか使いたくないと書かないと
VBAでの解決OKで自分でコード書けるものと勝手に解釈されて、「VBAで出来るから自分でコード書いて」程度の
適当な回答を返されたりします。また、ここではVBAコード書けない人の丸投げ依頼を許可してますが
これはきちんとルールに従って質問、依頼した人のみの特権です。
3.情報・条件を後出しすると…
A.後から出された情報は意図的に無視されたり、質問自体を放置されたりします。
>>1 ★4の必須情報はもちろんのこと、要望や条件、既に試したことなどは、
長文になってもいいので詳細かつ明確かつ具体的に書きましょう。
★VBAについて
VBAとは、『Visual Basic for Application』の略で
Application
├Workbooks
|└Workbook
| ├Worksheets
| |└Worksheet
というApplication以下のオブジェクトを、VB言語で操作するものを指します。
例えExcel付属のVBE(Visual Basic Editor)を利用しようとも、このApplication以下のブックやシート、
セルやオブジェクト等を操作するもの以外はVBA分野の話ではないので、ここでは聞かないでください。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法) ▼環境・書式 ・ 列数を256列以上、行数を65'536行以上に増やす (Excel2007では16'384列、1'048'579行扱える) ・ Excel2003以前で条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA) ・ 行の高さを0.25きざみ以下の単位で指定する ・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト) ・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける) ・ 祝日を判断する (作業セルに祝日を列挙、VBA) ・ 同一列内でセル(行)ごとに列幅を変える、同一行内でセル(列)ごとに列高を変える (セルの結合) ・ ヘッダー・フッターのページ番号の開始番号任意指定、ページ番号演算、同シート内で違ったものを指定など ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する (プラグイン) ・ 罫線幅の自由指定 ・ 表示形式で「10/ 1」といった書式を指定し、日付が一桁の場合のみ日付の前にスペースを入れる (TEXT関数、VBA) ・ 書式設定の「折り返して全体を表示する」と「縮小して全体を表示する」を同時に使う (折り返しを有効にして、手動で文字サイズを調整) ▼操作 ・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成) ・ 複数シートを選択して入力規則やシートの保護を設定する (VBA) ・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA) ・ 選択範囲から一部を除く、Ctrlを押しながらの複数選択で一部を取り消す (VBA) ・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える) ・ 1セルを分割 (分割したいセル以外を結合)
上記 「Excelで出来ないこと、仕様上の制限」 は、一般的に出来ないとされていること、出来ないと思われるものです。 間違いがある可能性もあるので、上記に挙がってるもので「コレはこうすれば出来るよ」というものがあったらご指摘ください。 Excel2007についても未確認な項目が多いので変更点が有ればご指摘下さい。 また、ここに書かれてないことでも、Excelで出来ないことはたくさんあります。 ここに書かれてないからといって必ず出来るはずだなんて思わないように。 >▼環境・書式 > ・ セルのサイズ(幅、高さ)を、長さの単位(ミリメートルなど)で指定する 補足 2007ではページレイアウトビューの表示時に限り、幅・高さともcm単位で表示され、 指定も同じくcm単位でできる。 ただし大元がインチ系なのでなかなかピタリの値は出ない。1cm→0.98cmのように 近い値に勝手に丸められる。
||
|| ━ 質問のしかた ━
||
|| ★1 質問するときは、環境や条件をキチンと書くこと。情報後出しはダメ。
|| ★2 要望は具体例や図を使って明確かつ具体的にしる。
|| ★3 質問前に
>>2-20 あたりの注意書きやQ&Aを必ず読むこと。
|| ★4 質問テンプレ(雛形)は必須ではないが、
|| OSやExcelのバージョン、VBAの可否などは必須情報。
||
|| ∧ ∧ 。
|| ( ,,゚Д゚)/ ジュウヨウ!! E[]ヨ
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ノ つ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
/  ̄ ̄ ̄ ./| ________________
| ̄ ̄ ̄ ̄| | |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|____|/|
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
\ は〜〜〜〜い /
∧ ∧ ∧,,∧ ∧ ∧
( ,, ∧▲ ミ ∧ ∧ ( ∧ ∧
〜(_( ∧ ∧_( ∧ ∧_ミ・д・∧ ∧
@(_(,,・∀・)@ ( *)〜ミ_ ( ,,)
@(___ノ 〜(___ノ 〜(___ノ
エクセルの技術的な質問と関係ない議論・雑談は下記スレッドで。
【質問不可】Excel総合相談所スレの雑談・議論スレ2
http://pc11.2ch.net/test/read.cgi/bsoft/1151651536
8 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 16:47:08
おつ
1おつ
10 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 18:35:02
おまえらに宿題だ あるエクセルファイルのアクセス履歴を、アクセス者に感づかれる事無く調べたい。 何かやっていることを感づかれてはいけないので、エクセルファイル自体へのマクロ埋め込みは不可だ。 そのファイルは保存しないため、最終保存者プロパティの取得でも不可だ。 検討を祈る
↑頭を下げずに答えをえ教えてもらう古典的な方法
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2007
【5 検索キーワード 】 Excel 中央揃え ショートカット
Excel2007で、「テキストの中央揃え」のショートカットキーってないんでしょうか?
(Alt+H→ACではなくて、一発でできるCtrl+*のやつです)
オンラインヘルプなどからもたどり着く下のページではCtrl+Eとなっていますが、これはMicrosoftのミスと考えていいんでしょうかね?
テキストを選択しても、セルを選択しても、ワークシート全体を選択しても、全く何も起こりませんでした(なお、左揃えや右揃えも効きません;右揃えCtrl+Rは他のショートカットに割り当てられているようです)。
Ctrl系のショートカットで、Ctrl+E以外で実はあてがわれているものがあれば、教えていただけたらうれしいです。
ないようでしたら少し手間はかかるけれどAltで我慢しようと思います・・・。
ttp://office.microsoft.com/ja-jp/excel/HA101677761041.aspx#32
15 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 21:56:28
Windows VISTAでExcelを利用しています。 実験の結果をグラフにしようと思い、実行しようとしたら分からなくなりました。 xとyを同時に測定する実験で、xが測定順に0.1、0.21、0.35でyが測定順に1、2、3だとします。 これをグラフにした場合x軸の目盛りを0.1ごとにしたいんですがどうしたらいいでしょうか?
>>15 Excelのバージョンとグラフの種類は?
17 :
15 :2008/11/12(水) 22:14:01
2007で、折れ線グラフです! 直線になるはずない測定値なのに直線になってしまい困っています。 お願いします
「第2軸」を使用すると良いでしょう。
散布図を使うという手もあるかな
20 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 23:29:46
レスありがとうございました。 同じような測定を繰り返して何本もグラフ重ねたいんですが、 3本目以降重ねられなくなりました。 そういう仕様なのですか?
>>20 軸が共通なら1つのグラフに255本まで重ねてプロットできる
グラフを右クリックしてデータの選択
前スレで解決しなかったのでもう一度質問します。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【5 検索キーワード 】 白黒 2値 印刷 白黒2値印刷をしたいのですが、Excel2007で印刷するとグレースケールになってしまうのは仕様ですか? ページ設定→シート→白黒印刷をチェックしても印刷プレビューと実際の印刷でグレーになってしまいます。
23 :
名無しさん@そうだ選挙にいこう :2008/11/12(水) 23:44:41
2本すら重ねられなくなりました。 ちなみに出る表示は 「データ範囲が複雑なため…」と出ます
24 :
15 :2008/11/12(水) 23:50:31
>21様 横軸xも毎回測定なので多少違うのですが…重ねるのは無理ですか? ちなみに横軸に同じセル指定しても無理でした。
25 :
名無しさん@そうだ選挙にいこう :2008/11/13(木) 00:17:03
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい(自分では組み立てられないけど) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 集計 並び替え 結合 <基本データ> A B C D 出荷 商品 単価 輸送費 1 東京 リンゴ 100 300 2 東京 バナナ 120 300 3 東京 ミカン 108 300 4 大阪 ナシ 110 200 5 大阪 ブドウ 105 200 6 大阪 リンゴ 100 200
26 :
25続き :2008/11/13(木) 00:18:46
ここで問題なのは、D列の輸送費なのですが、これは「東京」全体で300円であり、リンゴ、バナナ、ミカンそれぞれにかかる金額ではないということです。 D列の1〜3行目、4〜6行目までを結合してしまうと、並べ替えや集計ができなくなりますので結合する以外の方法が望ましいです。 が、今回から毎月「出荷地別」の合計額を集計し、グラフにしないといけなくなりました。(単価合計と輸送費込みの金額で集計しろと言われています) 東京 628 (単価合計328 + 輸送費300) 大阪 515 (単価合計315 + 輸送費200) ■ ■ ■ ■ ■ ■ ■ -------------------- 大阪 東京 (515) (628) こんな感じで各地域を横軸に、それぞれの単価合計と輸送費を足した合計金額を縦軸にした 棒グラフを作りたいのですが、どうやってグラフの基になる表を作ればいいかわからなくなりました。 基本データを変えずにこのようなグラフを定期的に作るためには、どうすればいいかご教示下さい。 実際のデータは1000行以上あり、列項目も複雑ですが、自動マクロで必要な列だけ抽出するところまではできました。データは毎日追加更新されます。
27 :
25続き :2008/11/13(木) 00:19:36
グラフ折れ曲がった・・・orz
>>25 作業列を作ってそこに輸送費を入れる。
この時、地域が同じなら最初の1回しか入らないようにする。
=IF(COUNTIF($A$1:A1,A1)=1,D1,"")
>>26 単価表を別に作れば?
SUMIFか集計で地域別の合計は出そうだしVLOOKUPと組み合わせれば何とかなるような…
>>24 情報不足で、後出しでよう分からんが、
やっぱなんか、散布図じゃないかな。
>>22 プリンタードライバー側で
できることがある。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 覚えたばかりです 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 foreach コレクション ファイル リネーム 多数のファイルをリネームしたいと思っています。 2008-11-05-蛎aa.xls 2008-11-20-誼bb.xls 2008-11-未処理-劃cc.xls という様な名前のファイルが多数あります。 「2008-11-」の部分までは必ず同じになっています。 そしてこれを来月に「2008-12-」で始めるようにリネームし、 更に来月には「2009-01-」で始めるようにしたいのですが、 コレクションがうまく扱えないで困っています。 同じフォルダにマクロを入れたファイルを置き、 ボタン一つでリネームするようなイメージなのですが・・ コードのご教授をお願いします。
>>33 そういう規則的な名前変更はコマンドプロンプトで一発。
ren 2008-11*.* 2008-12*.*
>>34 ありがとうございます!!
>>35 コピーは定期バックアップ&最初に別媒体にとってありますので大丈夫です
>>33 FileSystemObject使わない方法
Sub Macro1()
ChDir "C:\ExcelData" ' フォルダ指定
FN1 = "2008-11" ' 変更前
FN2 = "2008-12" ' 変更後
DI = Dir(FN1 & "*.*")
Do While DI <> ""
Name DI As FN2 & Right(DI, Len(DI) - 7)
DI = Dir()
Loop
End Sub
38 :
名無しさん@そうだ選挙にいこう :2008/11/13(木) 10:31:50
>>37 ありがとうございました!
これで仕事が大幅に減ります;;
>>33 コマンドプロンプトをVBAから使う方法
Sub Macro2()
DI = "C:\ExcelData\" ' フォルダ指定
FN1 = "2008-12" ' 変更前
FN2 = "2008-11" ' 変更後
Call Shell("cmd.exe /c ren """ & DI & FN1 & "*.*"" """ & FN2 & "*.*""", vbMinimizedNoFocus)
End Sub
>>38 見たところ、各行の最小値に色が付いてるみたいだから、これは条件付き書式を使ってるのかな?
色つきのセルはVBAを使わないとカウントできないから、最小値の個数を数えた方がいいんでない?
>>38 行毎の最大値に色をつける方法探してた人だね?
条件付書式と同じような条件で数えればいいだけだと思う
作業列を作るか配列数式を使う
条件付書式じゃなかったらGET.CELLでいけると思う
使い方はググレ
>>43 38じゃないけど配列数式の方法を知りたい。
その書き方だと作業列を作らずに配列数式だけで処理できるみたいだけど、俺の頭じゃ無理だ。
46 :
43 :2008/11/13(木) 15:19:31
>作業列を作るか配列数式を使う
作業列を作って配列数式を使うとでもしないと無理だなw
>>45 の表を借りると
作業列の式=MAX(O2:S2)
集計=SUM(IF(O1:O18=$T$1:$T$18,1,0))
集計は配列数式
47 :
名無しさん@そうだ選挙にいこう :2008/11/13(木) 15:41:33
>>38 仮にS列に
S1=IF(MAX(O1:P1)=P1,1,0)
これを合計
=SUM(S1:Sn)
48 :
名無しさん@そうだ選挙にいこう :2008/11/13(木) 18:08:52
数字によって 0から、18.5以下は× 18.5以上から、25以下は△ 25以上は、○ という風にしたいのですが、if関数を使ってたんですけどうまくいきません。 どうしたらいいですか?
>>48 ヘルプでLOOKUPの書式1を読むといいかも
あと細かいけど
>0から、18.5以下は×
以下じゃなくて未満だよね?
50 :
誘導されました :2008/11/13(木) 18:27:39
>>48 厳密にやるならこうだけど、
=IF(AND(0<=A1,A1<18.5),"×",IF(AND(18.5<=A1,A1<25),"△",IF(25<A1,"○","")))
マイナスのデータが存在しないなら、0以上かどうかの判断を省略してもっと簡単にできる
=IF(A1<18.5,"×",IF(A1<25,"△","○"))
>>50 データラベルの表示形式でパーセンテージを選ぶと単純に%が付きますが、
それで困るなら元のデータを%形式で作っておくしかないです。
>>51 0以上でも判定の順番を逆にすれば短くできる。
=IF(A1>=25,"○",IF(A1>=18.5,"△",IF(A1>=0,"×","")))
54 :
仕事になりません :2008/11/13(木) 21:22:20
2007使用しています。 写真を挿入すろためファイルを選択しようとすると表示ルートフォルダの初期化をしますとでます。 いちいちでてきてファイルをすんなり選択できず、仕事での写真帳を製作するのに時間がかかってしまいます。 突然この表示がでるようになりました。 だれかこの初期化をとめる方法教えてください。
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 値を残してシートを削除 シート1で作成したデータをシート2にリンク貼り付け。 その後、シート1を削除するために、コピーして形式を選択して貼り付けで値を選択しシートを削除しましたが シート2のデータが#REF!になってしまいました。 考えられるミスは何が考えられるのでしょうか・・・。
>>55 条件付き書式を使っている
マクロを使っている
59 :
よろしくお願いします :2008/11/13(木) 22:11:08
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel VBA テキストファイル UNICODE など 文字コードが「UNICODE」のテキストファイルがあります。 ファイルにはAもしくはBから始まるデータが格納されています。 これを、AはAだけ、BはBだけに振り分けたテキストファイルを作成したいのですが、 どうすればいいのでしょうか。
エクセルと言うソフトについて知りたいんですが 画像の大きさ|容量 | を一括りにして ______|_____| 100x100 |3MB | 200x100 |1MB | 100x200 |2MB | と言うように分けた場合 大きさに対し「名前順に配列」(あれば)の機能を利用して 100x100 |3MB | 100x200 |2MB | 200x100 |1MB | に変更できたりするのでしょうか?また一時保存してこの状態からサイズ順に配列ということもできますか? サイズの場合1と11111と222と言う数字があった場合11111が最後に来てしまうような気がするのですが (自動配列機能があったらの話ですが)宜しくお願いします
読み直しでミスを発見 >サイズの場合1と11111と222と言う数字があった場合11111が最後に来てしまうような気がするのですが 1→11111→222ですね、1は2よりも少ないので名前順で配列してしまった場合11111が最後には来ません 1→222→11111になるかどうかを記入したかったのですが間違えてしまいました
>>62 並べ替えで可能だけど、その例のように純粋に数字だけが入ってる場合にそういう順番にしたいなら
セルの書式設定を文字列にしてから入力するか、既に数字として入力されてるなら文字列に変換しないと駄目だと思う
65 :
名無しさん@そうだ選挙にいこう :2008/11/13(木) 23:54:38
【1 OSの種類 .】 WindowsXPSP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 指定 検索 リスト
ファイルうpしてます。
URL
ttp://www.uploda.org/ ファイルNo.1782367
PASS 【 abcd 】
sheet1が元の出勤表になってます。
sheet2の日報を1ヶ月分先に作るのですが、sheet1をプリントして、その日出勤する者のNoを入力で、
名前と勤務時間が表示されるようになってます。
実際には200人近い表の中から、一日100人前後の日報×30日分を作らないといけないので、
毎月月末になると大慌てで困ってます。
日付を入力するだけで、その日の出勤時間が空白じゃないNoだけを抜き出してA列に出す方法はないでしょうか?
どうかお力添えをお願いします。
>>63 −64
なるほど・・・・
名前さえ並び替えができればあ行か行とか分類が簡単に出来そうですね
予算が出来次第購入を考えたと思います
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 A列に2031,2033,5060,1050,3000 といった4桁の数がずらっと並んでいます。 頭2桁の数がダブりなくどの数が出現しているかはどうやれば わかるのでしょうか。 上の例で言うと 20(が2個)、50(が1個)、10(が1個)、30(が1個) カッコ内の出現個数が分かればよりいいのですが、どんか数が 入っているのかが知りたいのです。 COUNTIFなどは引数に指定した数がいくつあるかとかだと 思うのですが、どんな数があるかわからないので事前に引数に とることが出来ないのです。 ご教示ください。よろしくお願いします。
2000以上の個数からから2100以上の個数を引けば2000台の数 というのはだめなのか
頭2桁と決まってるなら B1:=LEFT(A1,2) とかで取り出せない? これを下までオートフィルでビーっと引っ張って(B列だけにビーっと) その後で個数を数える方法をなんなりと
>>60 VBAはできるみたいだし質問が今ひとつ愛麻衣なのでヒントだけ
ただしUTF-8とUTF-16の区別、BOMの有無などは考慮してないので、この先は自力で調べるべし
Sub ReadUtfTextFile1()
Filename = "C:\test.txt"
Workbooks.OpenText Filename:=Filename, Origin:=-535
End Sub
Sub WriteUtfTextFile1()
Open "C:\test2.txt" For Binary As #2
work = Cells(1, 1) & vbCrLf & Cells(2, 1) & vbCrLf
work = StrConv(work, vbUnicode)
Put #2, , work
Close #2
End Sub
>>69 そういう場合オートフィルはCtrl押しながらフィルハンドルをダブルクリック
何千行あっても必要な数だけ一瞬で入る
73 :
67 :2008/11/14(金) 01:30:28
早速のお答えありがとうございます。
>>68 すみません、私の理解力が足らず、今回はその方法は断念します。
>>69 ありがとうございます。頭2桁を取得すると、その結果たとえば
22,36,80,15,15,80
というB列ができますが、その中から現れた数字を
配列に入れて、ほかのプロシージャに渡したいのです。
ネット検索しても、ある特定の数「22」が何回出現したかなどは
出てくるのですが、出現した数値をダブりなく網羅して
22,36,80,15
というものを取得したいのですが、どうにも分かりません。
もしよろしければその辺を解説していただければ
助かります。(出来れば)よろしくお願いします。
>>72 すごくためになりました。ありがとうございます。
配列、とかプロシージャという言葉は俺には馴染みがないが ピボットテーブルを組んでみるというのはどうだろう
75 :
67 :2008/11/14(金) 02:13:01
>>74 ピボットテーブル、まったく分からないんですよ…
すごく便利だとは聞いているんですが、なんというか理解の埒外というか…。
どういう理由でそれをそこにドラッグするのかがまず分かりません。
にしても、ある範囲の値を漏れなくダブりなく返す標準関数ってないものだったのでしょうか。
「フィルタ」で「重複レコードは無視」が一番楽なのでしょうか。
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 否 ハイパーリンクの設定について教えて下さい。 セル内の特定の文字にだけハイパーリンクを設定することは可能ですか? 例えば「ABCDEFG」という文字があったらCDEの部分だけリンクを貼るようにする感じです。 よろしくお願い致します。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(必要であれば勉強するつもりです) 【5 検索キーワード 】 リスト 選択 数字キー ショートカット etc. 出荷伝票で、「品名、等級、サイズ、個数」などの項目を入力してるのですが、 セルがアクティブになった時点でリストが自動で表示され、 その中から数字キーで選択すると入力が終わり、アクティブなセルが隣に移動する。 という感じで、数字キーの選択だけで連続して入力していくような事は可能でしょうか? 今は入力規則のリストを使ってますが、小さいノートPCを手に持って入力してるので、 できるだけ入力の手間を省きたいと思ってます。 VBAが必要であれば、勉強するキッカケとしてヒントでもいただけたらと・・・w
>>76 素晴らしいです!なるほどこう考えればいいんですね。
マクロに組み込ませていただきます。
ありがとうございました!
>>79 VBAじゃないと無理だね
つーか、シート上で入力することに拘らないで
入力フォームでも使った方が良いのでは?
>>78 無理です
リンク部分だけテキストボックスを重ねてください
>>48 =LOOKUP(A1,{0,18.5,25},{"×","△","○"})
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 すごくちょっと 【4 VBAでの回答の可否】 ちょっとだけ可 【5 検索キーワード 】 VBA セル プロテクト VBAで、一定のセルに対するプロテクトのON・OFFはどう記述すればいいの教えてくださいm(_ _)m
85 :
84 :2008/11/14(金) 12:38:27
すいません できました・・・けど、カーソルがそこのセルに飛ぶなぁ
>>85 ヒント Select は使わない
いっぺん自分で作ったコード晒してみ
87 :
78 :2008/11/14(金) 13:03:47
>>82 ありがとうございます。
テキストボックスで対処することにします。
>>54 外付けHDDやUSBメモリなどのドライブを取り外したり、LANでつながってるパソコンの電源を切ったりすると
そのようになることがある
89 :
85 :2008/11/14(金) 13:10:12
85だけど、こんな感じ・・・ Range("A1").Activate Range("A1").Locked = True
>>89 1行目は不要。いちいちActivateしなくてもいい。
91 :
79 :2008/11/14(金) 13:41:15
92 :
38 :2008/11/14(金) 13:48:51
>>92 セル範囲がちゃんと指定されてないと最大値を検索する時に何もヒットせず空白になる。
たぶん区切り記号の入力ミスだと思うから、自分で1文字ずつ入力せずに式を丸ごとコピペしてみ。
例示した作業列の式をT2に入れて、あとはオートフィルで。
>>92 その式だと最大値のセルが1行で2つ以上あった場合に
条件付書式で色が付いてるセルの数と合わないので注意な
95 :
92 :2008/11/14(金) 14:25:59
うぉ・・成功しました Excelって凄www
96 :
名無しさん@そうだ選挙にいこう :2008/11/14(金) 14:28:15
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 vba 抽出 等 複数の人が色々な問題文を作ってます。 それを一つにまとめるのはすべて手作業でコピペしているのですが正直手間です。 各々が作業し問題を作り、それを一つにまとめあげるマクロか関数はありませんか?
>>94 確かにそうだ。同率首位をちゃんと出すにはどうしたらいいんだろう?
作業列を元データと同じ5列用意するのはいかにも間抜けだし。
>>97 作業列に最大値の位置じゃなくて数字そのものを入れればオケ
>>96 それってExcelでやる仕事?
マクロで処理するには、全員で作業の手順を統一してパターン化しないと無理だよ。
>>96 「1つにまとめる」って書かれても色んな解釈があるからなあ。
1つのフォルダに各人の作ったxlsファイルをまとめて入れていっぺんに印刷、
みたいなマクロならすぐにできると思うけど。
勝手に作った断片的なデータを1つのシートにまとめるのは、自動でやるのはほとんど不可能。
きちんとフォーマットを統一してないと。
>>90 できました ありがとうございましたm(_ _)m
103 :
96 :2008/11/14(金) 15:02:21
やっぱりエクセルの仕事じゃなかったでしたか… 今までのコピペの作業だけでも自動化されればよかったんですが ありがとうございます。
>>103 フォーマットが決まってる(みんな同じ)なら
コピペの自動化ぐらいはエクセル(VBA)でできる
教師なんて9割は機械オンチだから、フォーマットの統一なんて不可能だよ
>>73 こんなのは?数式は全て必要な行数分オートフィル。
A列 : 元データ(4桁の数値)
B1 : =INT(A1/100)
C1 : =IF(COUNTIF(B$1:B1,B1)=1,B1,"")
D1 : =IF(ROW()<=COUNT($C:$C),SMALL($C:$C,ROW()),"")
F1 : =IF(ROW()<=COUNT($C:$C),COUNTIF($B:$B,D1),"")
これで、VBAなら
dim a as variant
a = activesheet.range("D:F").specialcells(xlCellTypeFormulas, xlNumbers).value
で、昇順ソート済の「上2桁」と「出現回数」の入った2次元配列を得られる
107 :
106 :2008/11/14(金) 16:23:16
ごめん訂正。上の F は全部 E に読み替えて
>>108 G6=IF(LEFT(C6,FIND("-",C6)-1)*1=RIGHT(C6,FIND("-",C6)-1)*1,"△",IF(LEFT(C6,FIND("-",C6)-1)*1>RIGHT(C6,FIND("-",C6)-1)*1,"○","●"))
変わった方法としては
G6=LEFT(C6,FIND("-",C6)-1)-RIGHT(C6,FIND("-",C6)-1)
書式設定を
"○";"●";"△";
110 :
96 :2008/11/14(金) 17:42:02
先ほどはありがとうございます。 色々話し合った結果、エクセルのデータをパワーポイントvbaで呼び出し印刷 するのはどうか、という事になりました。 1ページ目:問題文Aと問題文B 2ページ目:問題文C (問題文ABCはそれぞれ別ファイル) となるような印刷になるマクロはありませんか? 問題文の長さ自体は収まるよう調整するようお願いしています。 微妙にスレ違いですがお願いします。
>>108 =MID("●△○",SIGN(LEFT(C6,FIND("-",C6)-1)-RIGHT(C6,LEN(C6)-FIND("-",C6)))+2,1)
ヒントの出し方から見て学校の宿題っぽいんで、得点が2桁の場合を無視すればもっと短くなる
=MID("●△○",SIGN(LEFT(C6,1)-RIGHT(C6,1))+2,1)
そもそも
>>108 のB6〜E9の表が得点が2桁以上の場合に対応して無い件w
>>114 ホントだw
これじゃ実用性ゼロだから完全に宿題確定だな。
>>111 の2番目の式でFAってことで
セルに「1-0」とか書いてあるのを、そのまま引き算として解釈できればいいのに
117 :
名無しさん@そうだ選挙にいこう :2008/11/14(金) 19:41:56
2003 XP 依頼事項 PageUpキー PageDownキーを押した場合、 画面がちらつくようになったのをなおしたい。 VBAで操作しているシートのみで、他のシートではちらつきは 生じていません。よろしく。
>>117 そういうのは実機が手元にないと原因が探りにくい。
イベントプロシージャが原因ならロジックを見直すかScreenUpdatingで改善できるかもしれない。
あとはパソコンをもっと高性能な物に変えるとか。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 OpenOffice.org 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 セル 参照 変数 セルに入力された数値によって参照先を変えたいです 例えば、A1 に 3、A2 に 7 が入力されていると 目的の記述の部分ではC7が参照される、そんな機能はないでしょうか?
>119 つOFFSET
できました ありがとうございました
123 :
119 :2008/11/14(金) 20:28:02
>>119 =
>>121 です
すみませんでした
>>122 ADDRESSと一緒に使えば同じ事ができるみたいですね
今回はOFFSETで十分でしたが勉強になりました
ありがとうございました
124 :
108 :2008/11/14(金) 20:58:57
答えてくれた方々、ありがとうございましたm(__)m これは学校の宿題です (。・x・)ゝ できたのでよかったです^^
>>124 丸写しはだめだよ。
式の意味を自分でちゃんと説明できないと宿題をやったことにならないぞ。
>>106 >で、昇順ソート済の「上2桁」と「出現回数」の入った2次元配列を得られる
なんとエレガントな…。ぱっと見ではちょっとわからないので勉強します。
しかし今日の作業で泥臭い方法ですが実装してしまいました。今度こういう場面(結構ある)では
使わせていただきます。
今回は、初出の時に動的配列に入れようとしたら、なにやらエラーが…迷わずダミーシートに展開。それを
過去に作ったモノで配列化。ダサすぎますが。
時々ここ覗かせていただいて、知らなかったことや洗練された方法をみて驚いています。
また驚きました。お付き合いありがとうございました。
127 :
108 :2008/11/14(金) 21:32:37
上の方々のを参考にさせていただいて G6=IF(LEFT(C6,1)>RIGHT(C6,1),"○",IF(LEFT(C6,1)=RIGHT(C6,1),"△",IF(LEFT(C6,1)<RIGHT(C6,1),"●",))) というのでやってみたのですが・・・これではだめですかね><;
>>91 使うのはそれ(ユーザーフォーム)だよ
ただしそこに書いてあるのはユーザーフォームの極々一部の機能・使い方であって
君の望むこともちゃんと出来る
つーか、ユーザーフォームはGUIアプリ開発環境と同等の機能を備えてるので
スキル次第で大抵のことは出来るよ
ユーザーフォームに関しては、VBAよりVB6の解説やサンプルの方が参考になるかもな
>>127 大丈夫、それでも正解。残念ながら100点はあげられないけど。
130 :
名無しさん@そうだ選挙にいこう :2008/11/14(金) 22:20:39
>>88 おさめる方法あるのでしょうか?もう発生してから毎日困っています。
>>130 「ファイルを開く」ウィンドウの左側の「ファイルの場所」にはいくつアイコンが並んでる?
132 :
名無しさん@そうだ選挙にいこう :2008/11/14(金) 22:32:31
>>131 非常にすみません。
仕事場用のパソコンなので職場にあり現在確認できないのです。
親切なかた申し訳ありません。
直すことできるのでしょうか?
>>132 うちではそういう経験がないんで、まだ手探りの状態。
検索すると同じ症状の報告はいくつもあるのに、決定的な解決策はどこにもなかった。
ぶっちゃけ、リカバリすればたいていの不具合は治るけど、それは最後の手段。
135 :
108 :2008/11/14(金) 22:43:43
>>129 そうですか^^;どうもです><
とりあえずこれで提出してみます^^;
136 :
名無しさん@そうだ選挙にいこう :2008/11/14(金) 22:43:50
>>133 そうですかあ。
ランを外しているときは止まるとの噂も聞いたのですが。
明日またいろいろとやってみます。
>>136 LANケーブルを抜けば待たされなくなるってんなら、間違いなく共有フォルダ、
ショートカット、ネットワークドライブ、最近使ったファイルのどれかが原因だな。
職場ってことはドメインには参加してる?
138 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 00:29:38
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA 入門、エクセル関数 シート2,3,4の範囲内のデータをシート1の範囲内に反映させたいのですが 関数やVBAでやるにはどのようにやるのでしょうか? シート2のA1:D5をシート1のA1:D5 シート3のA:1D5をシート1のA6:D10 といったような事です。
140 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 01:30:27
質問させていただきます。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【5 検索キーワード 】 マクロ 解除 仕事で、他人の作ったエクセルファイルを修正しています。 ファイル起動時にマクロの有効無効について聞かれるのですが、 「ツール」→「マクロ」でマクロを調べても見つかりません。 どのようにしたら、このマクロを解除できるのでしょうか? 又、セキュリティレベルを下げること以外で、 起動時のマクロに関しての警告を表示させないようにするにはどうすれば良いでしょうか? 宜しくお願いいたします。
>>140 ブックやワークシートのイベントプロシージャはマクロの一覧に表示されない。
警告を出なくするにはデジタル署名を追加すればいいんだけど、これは基本的にはブックの再生者にしかできない。
ようするに、がまんしろってこと。
142 :
141 :2008/11/15(土) 02:01:27
訂正 × ブックの再生者 ○ ブックの作成者
×ブックやワークシートのイベントプロシージャはマクロの一覧に表示されない。 ○Private定義されたプロシージャはマクロの一覧に表示されない。 ブックやワークシートのイベントプロシージャでも、 Worksheet_Activateみたいに引数の無いものならPublic定義することで イベントでも呼ばれ、マクロの一覧からでも実行できるというプロシージャを作成することが出来る
>140 元のエクセルファイルを作った人にはマクロを組み込んでいるか、確認しましたか? VBエディタの画面を表示したことはありますか? マクロを解除することと、「マクロを有効にするかどうか」のダイアログを表示しないようにする こととは全く異なります。セキュリティレベルを下げるのは危険ですよ。
145 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 11:43:42
条件付書式を使ってセルに色づけをしているのですが セルに色がついた場合、セルにロックをかけて選択できないようにするにはどうしたらいいのでしょうか? Excelのバージョンは2003です。 VBAは使えません・・・
>>140 まず作った本人に聞けよ
マクロがあるのか、どんなマクロなのか、必要なものなのか
そういう当たり前のことを何故かしない奴が多いんだよなあ
分かってない奴が偉そうに講釈を垂れる不思議
Alt+F11でVBエディタを開き 左上にある「SheetXX (SheetXX)」、「ThisWorkbook」 をいっこずつダブルクリック。 何か記述があれば手動で記述を削除。全部削除したら保存。
>>145 マクロのWorksheet_Changeを使えばいいんじゃないの
>>128 ありがとうございます。
勉強すれば望むことができると分かっただけでやる気がでます。
と言っても、なかなか大変そうですねこれ・・・w
今は時間だけはあるのでがんばってまいります。
ぶっちゃけエクセルでできないことってなくね?
そうだね エクセルでこどもつくったことあるよ
153 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 15:18:57
>>137 おおおおーっ!
ありがとうございますー。
会社にきてやってみると、やはりランケーブルを外すと治まったんで、レスどおり調べるとネットワークドライブを調べると、私の部署の共有サーバが落ちていました。
サーバーを回復させてみると症状がなくなりました。
昨日は最後のレスのあと私が落ちていまいましたが、今日あなたのスレをみました。アリガトウございます。
休日出勤のカイがありました。
感謝でございます。
少なくとも木曜の夜からダウンしてたのに、いままで気づかれない鯖カワイソス
メッセージで検索するとどこもウヤムヤになってるのは、 質問者の関知しないところでサーバ復旧して解決とかか
156 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 17:58:12
>>154 そうなんすよ。
共有なんですが部署の皆が今は繁忙期で外勤がおおく俺自身もあまり使わないので気づかなかった(涙)
質問です。 小数点以下の切捨てや四捨五入等は出来ると思いますが 例えば、「12300」の5%=615 となりますが、これを「610」と表示することは可能でしょうか? 要は最後の一桁を切捨てしたいのです。 WindowsXP Excel2002 VBAが使えるか いいえ VBAでの回答の可否 否 検索キーワード 切捨て・四捨五入など よろしくお願いします。
=ROUNDDOWN(615,-1)
>>158 すみません・・・早速ありがとうございました。
160 :
140 :2008/11/15(土) 18:27:09
エクセル2007で自作のマクロを動作させる場合って マクロのセキュリティを最低まで下げないと駄目なんでしょうか? 未署名のものを2003のときみたいに実行するかしないか警告出させることは出来ないのでしょうか?
162 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 19:44:57
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 毎月 指定 例えば2日と入れると、以後の2日の日付と曜日を出してくれるようなエクセルを 作りたいのですがどうしたらよいでしょうか?
163 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 20:11:07
>>162 =DATE(年,月,2)&TEXT(DATE(年,月,2),"aaa")
年よ月を変数にしとけば毎月でも毎年でも後は自分で工夫して
>>162 例えばA1に11/2と入れ、A2に=A1+1、A3に=A1+2と入れそれぞれのセルの書式設定d(aaa)またはd/(aaaa)
書式設定は
月も表示したいならm/d(aaa)
年も表示したいならyyyy/m/d(aaa)またはyy/m/d(aaa)
平成で表記したいならyyyyをgeまたはgggeに
月を英語表記mをmmmまたはmmmm
曜日を英語表記したいならaaaをdddまたはddddになど色々表示を変えられる
日本語って難しいなあw
>>161 基本は署名すること。セキュリティを下げたり裏技で回避するのはオススメできない。
自分で使うだけのマクロなら、証明書は自分で簡単に作れるから、それを使えばいい。
スタートメニューのOfficeフォルダの中に証明書作成ツールがちゃんと入ってる。
>>162 A1に「2日」と入れて、A2とA3に続く2日間の日付と曜日を出したいんなら、
A2に=A1+1と入れて書式でdd aaaなどと設定する。A3はA2をコピペ。
168 :
162 :2008/11/15(土) 22:04:17
すみません、言葉足らずだったようでうまく伝わってないみたいなのですが・・・ 例えば一つのセルに2日といれると 2008/11/2 木曜 2008/12/2 金曜 ・・・ となるようにしたいのです。 164さんの方法があっているのでしょうか? いまいち分からなかったのですが・・・
>>168 たとえばA1に2と入れて、A2以降に毎月2日の日付と曜日を出したいなら、
A2は=DATE(YEAR(TODAY()),MONTH(TODAY()),A1)
A3は=DATE(YEAR(A2),MONTH(A2)+1,A$1)
A4以降はA3をコピペ
で、書式を「yyyy/mm/d aaa"曜"」にする
170 :
162 :2008/11/15(土) 22:20:36
>168 できました! とてもわかりやすい説明ありがとうございました。
171 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 22:51:15
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否 】 否 【5 検索キーワード 】 lookup、vlookup 表を作っていて、47(塗りつぶし青・白文字)のように予め塗りつぶしや文字色を指定した対応表を作っておき、 他のセルに"47"と入力すれば自動的に塗りつぶしと文字色をつけるようにするにはどうすればいいのでしょうか? lookup関数かと思い、ググってみましたが、どうも違うような気がしまして… 下手な日本語でなかなか分かりづらいかと思いますが、宜しくお願いいたします。
>>171 条件付き書式
ただし設定できるパターンは2種類まで
3種類以上の色を使いたいならVBAしかない
173 :
名無しさん@そうだ選挙にいこう :2008/11/15(土) 23:18:56
【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 平日 A1に日付をいれ、その日が土日祝日の場合翌平日を出したいです。 カレンダーを作り、土日祝日を表示するまでは出来ました。 土日だったら単純に1や2足せばいいと思いますが、 GWなど連休になるとどうすればいいかわかりません。 ご教示ください。
>>173 カレンダーを表示したついでに逆に数えて表を作っておく
31日 =IF(土日休日か,1,0)
30日 =IF(土日休日か,A1+1,0)
29日 …
そうしてその日付の値を足せばいい
176 :
171 :2008/11/15(土) 23:37:38
>>172 ありがとうございます。
どうやら私のケースではVBAを使わなくてはいけないようなので、
またググってVBAでやってみます。
ご丁寧にありがとうございました。
177 :
173 :2008/11/15(土) 23:48:47
自動で逆方向(表自体は順方向でもいいんだけど)に数えれば良いという話で 自分で数えなくていいんですよ
>>177 一覧表方式で何年分もあると、まず祝日の一覧が正しいかどうかが怪しい
180 :
名無しさん@そうだ選挙にいこう :2008/11/16(日) 01:34:20
やっぱりお前らバカだなw WORKDAY関数を使えば一発じゃないか。
知ったかがでしゃばりをこきおろす 馬鹿ばっかりのこんなスレッドじゃ ポイズン
WORKDAY関数はアドインを入れないと使えない 更にアドインはVBAで作られている そして質問者はVBAでの解法を拒否している VBA否に対してアドインが許容されるなら、VBAの可否を聞く意味無いな 「マクロとして組み込むのが嫌ならアドインとして組み込め」の一言で VBA可否の問題は全て解決するから
とりあえずWORKDAYを使った回答。休日のリストがZ1:Z20にあるとして、 =WORKDAY(A1-1,1,$Z$1:$Z$20) WORKDAYが使えない場合はカレンダー内の平日をvlookupで検索するとか。 カレンダーがどういう形かわからないと具体的な式は書けない。
余分なアドインなんて使うのはニートだけ
>>182 頭の悪い屁理屈にあなたの哀れさがにじみ出てますよ
186 :
161 :2008/11/16(日) 10:07:15
>>166 ありがとうございます
署名ツールを使ってみます
>>185 理論での否定ではなく感情での否定しか出来ないんですね
>>187 そうなんだよ、あのレスじゃ理論かます気になんないだろ
これは辛い
190 :
173 :2008/11/16(日) 11:11:18
WORKDAYを使ってできました。 ありがとうございます。
191 :
180 :2008/11/16(日) 11:22:36
やっぱりお前らバカだなwww 2007ではアドインは標準装備だ!
192 :
191 :2008/11/16(日) 11:24:23
△アドイン ○2003以前の[アドイン]分析ツール
2007プロのアップグレード買ったんですけど2003と挙動が違いすぎて・・・ 社内では2007と2003が混在している状況ですが 2003で使えるマクロは2007でもスイスイ動くのに逆だときちんと動かないとか物凄く遅くなったりして・・・ バージョンによる互換性の問題は以前からありましまたし、大きな変更は95→97のときもあったのですが メニューが以前より大幅に改悪されているというのもあり、自宅での導入を躊躇ってしまっています とっつきやすさを狙っているんでしょうが、慣れてる人にとっては逆に面倒くさいというか みなさんはどうしているのでしょうか?
>>193 2007を窓から捨てて2003を使っている
>>193 君より少しだけ物の本質がわかってるので
そんな悩みはありません
>>193 まずはマクロにApplication.Version を仕込んで処理を分岐させやがれ
話はそれからだ
>>197 書き方が悪かったな。
2007ならアドイン入れなくてもWORKDAY関数は使えるって事だ。
>>193 バージョンによる互換性の問題…
要求してるのが下位互換とか釣りですかズザー
でも実際2007は互換性低いし 2003ユーザーから見ればOOoと大差ない
そうでもないか
我が家のエクセルに、性質の悪い彼氏ができたようで、急に金髪に染めたり、ピアス(へそも)をあけたり、あまりの変わりように、一家そろって心配しています。 マクロを使えば、何とかなるでしょうか?
なりません
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 コードコピペが成り立つなら 教えてください 会社で得意先に月報を提出しなければならないのですが 平成20年 5月分 報告書 1日(日) ○○工事 2日(月) □□工事 3日(火) 特になし ・ ・ ・ みたいな書式で毎月出すんですが 年月日のそうさを完全オートマにできないでしょうか? 現在は少なくても月と曜日を手動で入力しなければなりません 曜日はオートフィルでたいした手間ではないんですが どうせならもっと 例えば年月入力のみですむ方法などありましたらご教授下さい
205 :
名無しさん@そうだ選挙にいこう :2008/11/16(日) 21:35:52
>>204 方法は色々あるから、とりあえず情報だけ。
日経PC21(12月号)に月間予定表の作り方例が
載ってるから、立ち読みでもしてみたらどうかな
参考になるよ
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 エクセルファイルを開こうとすると、 「読み取れないようが含まれています。このブックの内容を回復しますか?」 と言われてしまいます。はいを選択すると、 「削除されたパーツ: /xl/sharedStrings.xml パーツに XML エラーがありました。」 と表示され、今まで書いた内容がほとんど消えてしまいました。 これは、xl/sharedStrings.xmlを自力で治すしかないということでしょうか・・・?
208 :
名無しさん@そうだ選挙にいこう :2008/11/16(日) 22:22:08
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ちょっとだけなら 【4 VBAでの回答の可否】 できれば丸ごとコピペしたい ※次のようなデータを、その次にあるように同じ日付と注文番号ごとにセルを手動で結合させ さらに小計列と合計列を挿入して、それも注文番号ごとに手動で結合させ、最後に合計行を挿入して その月ごとに集計を取っています。これをVBAで自動でできればありがたいのですが・・・ 出荷日 注文番号 モデル 金額 運賃 ------------------------------------------- 7月15日 1-2 A \1,000 7月15日 1-2 B \2,000 \1,000 7月15日 2-1 C \1,500 7月15日 2-1 D \1,800 \500 出荷日 注文番号 モデル 金額 小計 運賃 合計 -------------------------------------------------------------- A \1,000 1-2 \3,000 \1,000 \4,000 B \2,000 7月15日 C \1,500 2-1 \3,300 \500 \3,800 D \1,800 --------------------------------------------------------------- 合計 4台 \6,300 \1500 \7,800
>>207 すみません。質問の2行目は
「読み取れない内容が含まれています。このブックの内容を回復しますか?」
の間違いでした。
210 :
208 :2008/11/16(日) 22:25:33
すみません。作りたいほうの表がうまく表示されませんでした。このようにできたらありがたいです。 出荷日 注文番号 モデル 金額 小計 運賃 合計 -------------------------------------------------------------- A \1,000 1-2 \3,000 \1,000 \4,000 B \2,000 7月15日 C \1,500 2-1 \3,300 \500 \3,800 D \1,800 --------------------------------------------------------------- 合計 4台 \6,300 \1500 \7,800
ピボットテーブルで作れば
212 :
名無しさん@そうだ選挙にいこう :2008/11/16(日) 22:45:43
>>208-210 とりあえず望みの操作を手動で記録してみな
そこに「上から順に見ていって、注文番号などが変わる直前まで結合する」を加えるといいよ
213 :
208 :2008/11/16(日) 23:35:33
レスありがとうございます。 >211 これは>208に対してのレスでしょうか? 上司がピボットテーブルを使えないので不可なんです。 >212 手動で記録とはマクロの自動記録ですよね? やってみたことはありますが、「上から順に見ていって、注文番号などが変わる直前まで結合する」 このコードが作れないのです。 VBAは見て何が書いてあるかがなんとなくわかる程度です。 教えていただけたら有難いです。
だからそれを書けよ 「自動記録でやってみ」じゃレスする意味ねー
>>213 上司のせいにするなよ。
君がピボットテーブル使う気がないだけでしょ。
× 【3 VBAが使えるか .】 ちょっとだけなら 【4 VBAでの回答の可否】 できれば丸ごとコピペしたい ○ 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 丸投げでお願いします
> 上司がピボットテーブルを使えないので不可なんです。 本当に上司のせいでピボットテーブルが使えないなら 業務発展の足を引っ張る奴は上司失格だと言ってやれ 俺の直属の上司もPCには疎いが、業務でPCを使う場面が増えていくに当たって 部下に教えを乞うてまで、自分の機会下手が業務の阻害にならないように努力してるぜ それに「上から順に見ていって、注文番号などが変わる直前まで結合する」程度が出来ないんじゃ 大抵のコードは見ても理解できないだろ こんなの初歩の初歩である単純なループと条件分岐で組めるんだから、それが出来ないって事は ループや条件分岐があるコードは理解できないってことだからな
Sub TEST() Application.DisplayAlerts = False Cells(1, 6) = "小計" Cells(1, 7) = "合計" I = 2 TEMP_DATE_FR = I TEMP_ORNO_FR = I NO_AMOU = 0 NO_SHIP = 0 NO_CONT = 0 Do NO_AMOU = NO_AMOU + Cells(I, 4) NO_SHIP = NO_SHIP + Cells(I, 5) NO_CONT = NO_CONT + 1 ' * SET FOR ORDERNO * If Cells(I, 2) <> Cells(I + 1, 2) Then Range(Cells(TEMP_ORNO_FR, 2), Cells(I, 2)).MergeCells = True Range(Cells(TEMP_ORNO_FR, 5), Cells(I, 5)).MergeCells = True Range(Cells(TEMP_ORNO_FR, 6), Cells(I, 6)).MergeCells = True Range(Cells(TEMP_ORNO_FR, 7), Cells(I, 7)).MergeCells = True Cells(TEMP_ORNO_FR, 6) = NO_AMOU Cells(TEMP_ORNO_FR, 7) = NO_AMOU + NO_SHIP TEMP_ORNO_FR = I + 1 NO_AMOU = 0 NO_SHIP = 0 End If
' * SET FOR DATE * If Cells(I, 1) <> Cells(I + 1, 1) Then Range(Cells(TEMP_DATE_FR, 1), Cells(I, 1)).MergeCells = True Rows(I + 1).Insert SHIFT:=xlDown Cells(I + 1, 1) = "合計" Cells(I + 1, 3) = I - TEMP_DATE_FR + 1 & "台" Cells(I + 1, 4) = WorksheetFunction.Sum(Range(Cells(TEMP_DATE_FR, 4), Cells(I, 4))) Cells(I + 1, 5) = WorksheetFunction.Sum(Range(Cells(TEMP_DATE_FR, 5), Cells(I, 5))) Cells(I + 1, 6) = WorksheetFunction.Sum(Range(Cells(TEMP_DATE_FR, 6), Cells(I, 6))) Cells(I + 1, 7) = WorksheetFunction.Sum(Range(Cells(TEMP_DATE_FR, 7), Cells(I, 7))) Range(Cells(TEMP_DATE_FR, 1), Cells(I, 2)).VerticalAlignment = xlCenter Range(Cells(TEMP_DATE_FR, 1), Cells(I, 2)).HorizontalAlignment = xlCenter Cells(I + 1, 1).HorizontalAlignment = xlCenter I = I + 2 TEMP_DATE_FR = I TEMP_ORNO_FR = I NO_AMOU = 0 NO_SHIP = 0 End If I = I + 1 Loop While Cells(I, 1) <> "" Columns(6).Cut Columns(5).Insert SHIFT:=xlToRight End Sub
うだうだ講釈垂れてるのがむかついたので書いちゃった。まだいまいち汚いけど一応動くはず。
天の邪鬼も結構大変だね
さて、それじゃピボットテーブルでの解き方を見せてもらおうか
さて、よく見たら無駄コードがかなりあるので >217タン、綺麗に修正頼むわ 当然これぐらい簡単に理解できてるんだよね じゃね
説教もうざいがいちいち煽るのもうざい 解決したんだから終了
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 質問です、お客にExcel2003VBAで作られた営業管理ソフトあるのですが、 データが65536行に目前と迫っており、何とかならないかと以来されました。 VBAは旧社員が片手間で作った品物で、CRMシステムという大層なものではなく、 電話番号・取引先で検索し過去に行った営業文句などの列が表示される普通のVBAです。 行数の問題なら2007を導入して解決したいとお客も言っております。 その際、バックアップマシンに一度2007を入れて動作確認など行おうと思っていますが、 Office2007を認証しなければ動作出来ないでしょうか? 認証してしまうと動作確認後に本番マシンでもライセンスが必要になるなら、一応説明しておかなければなりません。 XPOSの用に30日は使えるといったようなら、希望通りになりそうですが。。 よろしくお願いします。長文すみません。
>225 日付をまたいで同じコードがあるとそうなるね >217タンがさくっと直してくれるでしょうw
>>227 プログラムが上手く直ったとしても、しょせん再発明。無価値。
>>226 認証は必要だけど、ちょっと動作を確認する程度ならMS公式から
期間限定で使える無料体験版を落として使えばよろし。
限定されているのは利用期間だけで機能はフルに使える。
メールアドレス1つあれば体験版のインストールキーはすぐに発行される。
つまり無駄な買い物はしなくていいってこと。
いつのまにかテンプレがなくなってんのね。今まさに 「ピボットテーブルで解決できない質問からは威嚇しながら逃げる。最初から出てこなきゃいいのに。」 (VBA厨)「ピボット厨に目の敵にされている。」 の状況が発生してて笑ったわ。
>>229 体験版という手がありましたか!よっしゃそれで行っています。
232 :
217 :2008/11/17(月) 10:07:43
>>223 ,
>>227 仕様があまり明確ではないが、出てるデータに合わせて即興で書いてみたがこんなんでいいかな?
Const DTR = 2
Application.DisplayAlerts = False
Columns(5).Insert: Cells(1, 5).Resize(, 3).Value = Array("小計", "運賃", "合計")
iR1 = DTR: iR2 = DTR
For i = DTR + 1 To Cells(Rows.Count, 1).End(xlUp).Row + 1
If Cells(iR1, 1).Value <> Cells(i, 1).Value Then
Cells(iR1, 1).Resize(i - iR1).MergeCells = True
iR1 = i
End If
If Cells(iR2, 2).Value <> Cells(i, 2).Value Then
For Each vC In Array(2, 5, 6, 7): Cells(iR2, vC).Resize(i - iR2).MergeCells = True: Next vC
Cells(iR2, 5).Value = WorksheetFunction.Sum(Cells(iR2, 4).Resize(i - iR2))
Cells(iR2, 7).Value = Cells(iR2, 5).Value + Cells(iR2, 6).Value
iR2 = i
End If
Next i
iR1 = i - 1
Cells(iR1, 1).Resize(, 3).Value = Array("合計", "", iR1 - DTR & "台")
For i = 4 To 7: Cells(iR1, i).Value = WorksheetFunction.Sum(Cells(DTR, i).Resize(iR1 - DTR)): Next i
データ増やしても
>>225 のような不都合は出ないと思う
あと、得に仕様要求に無いセンタリングとかはしてない
マルチステートメントはここに貼る上での都合なので、解除してくれて結構
個人的にはApplication.ScreenUpdating入れた方がいいと思うがお好きなように
変数宣言が欲しければ以下
Dim i As Long, vC As Variant
Dim iR1 As Long, iR2 As Long
233 :
217 :2008/11/17(月) 10:08:13
因みに再発明(車輪の再発明)とは 「広く受け入れられ確立した技術や解決法を無視して、同様のものを再び一から作ってしまうこと」 により 「新たな付加価値が何もないものを作成するのにコストをかけること」 を指すが、この場合彼のコードやアルゴリズムは「広く受け入れられ確立した技術や解決法」ではないし 不都合の修正など「新たな付加価値」もあるので再発明(車輪の再発明)には該当しない
234 :
名無しさん@そうだ選挙にいこう :2008/11/17(月) 11:06:52
excelで「フィボナッチ数列の隣りあう項の比は黄金比に収束する」を表したいのですが 式はどうしたらできますか?
それ、Excelではなく数学の問題じゃね?
>>234 Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "フィボナッチ数列の隣りあう項の比は黄金比に収束する"
MsgBox "あとは、てめーで証明しろボケ"
End Sub
>>234 数列の一部をセルに書き出すことは可能だけど、収束するかどうかを示す方法は
何か自分で考えて工夫するしかない。
とりあえずExcelだけで証明するのは不可能だから。
>>234 >excelで「フィボナッチ数列の隣りあう項の比は黄金比に収束する」を表したい
「表す」って何?
「(フィボナッチ数列の)n-1番目の数値:n番目の数値の比率」を求めたいなら作業列を作れば何とかなる
ただし、小数点以下の計算は誤差がひどいので工夫が必要だと思う
VBAで求めるなら作業列とかも必要ないんだけどな・・・
wikiでフィボナッチ数列について調べて頭がおかしくなりかけた
証明問題?何それおいしいの?w
239 :
231 :2008/11/17(月) 17:14:14
>>229 体験版で無事確認できました!ありがとう!!体験版神!!
>>238 MsgBox "フィボナッチ数列の隣りあう項の比は黄金比に収束する"
できっちり画面に「表す」事ができるでしょ。
>>234 フィボナッチ数列: F_{n+2} = F_{n+1} + F_{n}
これを F_{n+1} で割って F_{n+2} / F_{n+1} = 1 + 1/(F_{n+1}/F_{n})
したがって、R_{n} := F_{n+1}/F_{n} とすれば R_{n+1} = 1+1/R_{n}
であるから、
A1 に 1
B1 に 1
A2 に =A1+1
B2 に =1+1/B2
と入れて、A2:B2 を下に好きなだけコピー (A2:Bn にコピーしたとする)
散布図を x = A1:An, y = B1:Bn で描けばおk
>>241 上の三行見ただけで頭痛がしてきたw
>A2 に =A1+1
>B2 に =1+1/B2
A2 に 1
A3 に =A1+A2
B2 に =A1+A2/B2
じゃないのか?
243 :
242 :2008/11/17(月) 19:04:00
循環参照してるなw B2 に =A2/A1か A1/A2 かな?
244 :
241 :2008/11/17(月) 19:13:07
>>242-243 >>241 で入力したものは
A列: 項数 (1, 2, 3, 4, 5, ..., n)
B列: 比の値 (1/1, 2/1, 3/2, 5/3, 8/5, ...)
で、頭痛の種の3行はフィボナッチ数列の漸化式から、フィボナッチ数列の隣接2項間の比の漸化式を作る作業です。
普通にフィボナッチ数列も入れたいのであれば
A1 1
A2 =A1+1 (下にコピー)
B1 1
B2 1
B3 =B1+B2 (下にコピー)
C1 = B2/B1 (下にコピー)
でA列をx軸、C列をy軸にとったプロットをすればおkです。
245 :
名無しさん@そうだ選挙にいこう :2008/11/17(月) 20:07:08
EXCEL2003、VBA使用可です。 セルへのデータ(値)の入力は可能だが、 書式(表示形式、フォント、塗りつぶし等)の変更は出来ないようにするシート保護は、 できるのでしょうか? できるのであれば操作方法を教えて下さい。 よろしくお願いします。
246 :
242 :2008/11/17(月) 20:34:57
>>244 その漸化式が合ってるかどうか知らんし
>>234 でもないんだが
結局
>B2 に =1+1/B2
の循環参照は
B2 に =1+1/A2 か?
もしそうなら
>B列: 比の値 (1/1, 2/1, 3/2, 5/3, 8/5, ...)
にはならない
B2から(2/2, 2/3, 2/4, 2/5, 2/6, ...) になる
247 :
242 :2008/11/17(月) 20:38:40
>B2から(2/2, 2/3, 2/4, 2/5, 2/6, ...) になる ならないよな・・・orz B2から(1+1/2,1+1/3, 1+1/4, 1+1/5, 1+1/6, ...) になるってことで合ってるのか?
>>245 Excelの設定変更だけでは無理ですが、VBA可なのでWorksheet_SelectionChangeと
Worksheet_Changeを使えばたぶん可能だと思いますが、微妙に面倒です。
【1 OSの種類 .】 WindowsHP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 初歩的な質問で申し訳ないのですが、教えてください。 ノートPCやデジカメの在庫管理を任されました。 在庫管理表の作成についての質問です。 故障が起きてストックを社員に貸し出したときに、 機種番号の隣に○×で出るように関数で設定したいです。 IF関数を使って作ろうかと思ったんですが、 同じ機種が一ヶ月にでたりはいったりするため、どのように設定したらいいのか分かりません。 現在の在庫完了は貸し出した日付と返却した日付と機種番号を入力しているだけなので、 今何の機種がないのかわかりにくい状態です。 フリーソフトは会社では今は使用不可だそうです。 どういうデータの一覧を作ったらいいのか、何の関数を使ったらいいのか、 お知恵を貸していただけたらと思います。
>>249 在庫じゃなくて備品管理だな。在庫ってのは商品、売り物のことだ。会社内で使う機材は備品な。
まずすべての備品にユニークな備品番号を付ける。
そして機種、製造番号、備品番号を一組にしたデータベースを作る。これが第一段階。
次に、備品番号、貸した日、戻った日、貸した人を一組のデータとして1行に並べる。
これを積み重ねていくのがもっとも基本的な方法。
251 :
241 :2008/11/17(月) 21:28:55
えーと、
>>242 ではフィボナッチ数列をA列に生成しているので、
B1 = A2/A1
にすればフィボナッチ数列の隣接項の比が出てきます。
252 :
245 :2008/11/17(月) 21:46:39
>>248 レスありがとうございます。
実質無理ってことですね。
253 :
208 :2008/11/17(月) 21:55:26
なんだか荒れててびっくりしました。 とりあえずきちんと答えてくださった方、どうもありがとうございました。
223涙目
誰か
>>252 にマクロ書いてやって。俺には無理だ。
256 :
名無しさん@そうだ選挙にいこう :2008/11/17(月) 22:21:51
うむ。ものすごく急いでいる。■法務委員会の採決もすっとばすくらい■急いでいる
ttp://mamono.2ch.net/test/read.cgi/newsplus/1226889723/6 ■緊急!■
河野・塩崎・大島らは、「法務委員会採決」をすっとばしていきなり本会議に上程
するようです。前代未聞の強行突破です!
緊急拡散【偽国籍改正案】手続で止める方法 (水間政憲)
皆様、動画サイトは2日間だけで3万数千件のアクセスになっているようです。
最後の最後にお願いして頂きたく、手続きに関する矛盾点と対策を列記します。
衆院法務委員会で,まだ、採決が行われていない「国籍法一部改正案」が、■本会議で緊急決議■することになったことは、
大島理森自民党国対委員長のところに、衆院法務委員会自民党から持ち込まれたからです。
一般的にその責任者は、塩崎恭久筆頭理事になるでしょう。
大島理森国対委員長は、この法案の危険性をよく理解していないと思われます。
また、自民党総裁選麻生候補推薦人代表の島村宜伸自民党代議士会会長も、同じような状態だと推察できますので、お願いのFAXをして頂けると幸いです。
そして、これは難しいことかも知れませんが、18日13時から本会議場で「議長ー…」と発声する呼び掛け人の、谷公一議員が「国籍法一部改正案」と発しなければ、採決されません。
谷議員にお願いするのも一案です。本来これほどの重要法案は、法務委員会で採決された後に、各議員にプリントが配られ、2〜3日後に本会議で採決されることが普通です。
今回の件は異常中異常です。ジャーナリスト水間政憲。転載フリー。
---------------------------------
<FAX番号>
大島 理森 0 3 - 3 5 0 2 - 5 0 8 2
塩崎 恭久 0 3 - 3 5 0 8 - 3 6 1 9
島村 宜伸 0 3 - 3 5 0 8 - 3 7 1 8
谷 公一 0 3 - 3 5 0 2 - 5 0 4 8
最近はテンプレ5番なしが流行ってるのか? 5番なしで質問してるやつには答えたくないな・・・
258 :
名無しさん@そうだ選挙にいこう :2008/11/17(月) 23:38:46
標準フォント変更ってどうやるの?
>>248 Worksheet_Change で書式の変更って拾えないよね?
261 :
242 :2008/11/18(火) 13:26:19
>>241 の何がおかしいかようやく分かった
>B2 に =1+1/B2
B2 に =1+1/B1
の間違いだったのねw
1〜10の数字が書かれた10枚のカードがあります (1のカード、2のカード、…、10のカード) このカードを無作為に一枚引き、元に戻す という操作n回行った時 出た数の平均がm未満になる組み合わせの数 の一覧表を作りたいです。 横にmが1〜10、縦にnが1〜100、となるようにマクロを組んでみましたが 途中でメモリ不足で強制終了してしまいました。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 OpenOffice 【3 VBAが使えるか .】 これが初挑戦です 【4 VBAでの回答の可否】 可
Sub Main Dim oCell as Object Dim Dice100( 1 To 100) as long Dim DiceNum as long Dim mUnder as long Dim Anser as long Dim EndR as long Dim DiceSum as long Dim Count as long For DiceNum = 1 To 100 For mUnder = 1 To 10 DiceClear(Dice100()) Anser = 0 EndR = 0 While EndR <> 10^DiceNum EndR = 1 DiceSum = 0 For Count = 1 To DiceNum DiceSum = DiceSum + Dice100(Count) EndR = EndR * Dice100(Count) Next Count If (DiceSum / DiceNum) < mUnder Then Anser = Anser + 1 EndIf DiceAdd(Dice100()) Wend
すみません、張り直しです Sub Main Dim oCell as Object Dim Dice100( 1 To 100) as long Dim DiceNum as long Dim mUnder as long Dim Anser as long Dim EndR as long Dim DiceSum as long Dim Count as long For DiceNum = 1 To 100 For mUnder = 1 To 10 DiceClear(Dice100()) Anser = 0 EndR = 0 While EndR <> 10^DiceNum EndR = 1 DiceSum = 0 For Count = 1 To DiceNum DiceSum = DiceSum + Dice100(Count) EndR = EndR * Dice100(Count) Next Count If (DiceSum / DiceNum) < mUnder Then Anser = Anser + 1 EndIf DiceAdd(Dice100()) Wend
Set oCell= ThisComponent.Sheets(0).getCellByPosition(mUnder,DiceNum) oCell.Value = Anser Next mUnder Next DiceNum End Sub Sub DiceAdd(Dice100()) DiceAdd2(Dice100,1) End Sub Sub DiceAdd2(Dice100(),Num) Dice100(Num) = Dice100(Num) + 1 If Dice100(Num) > 10 Then Dice100(Num) = 1 DiceAdd2(Dice100(),Num+1) EndIf End Sub Sub DiceClear(Dice100()) For Num = 1 to 100 Dice100(Num) = 1 Next Num End Sub
このマクロだとカード6枚目でメモリ不足で止まってしまいます 何か良い方法がありましたらお願いします
267 :
名無しさん@そうだ選挙にいこう :2008/11/18(火) 17:16:32
せめてどこでメモリが不足しているのかだけでもお願いします 例えばDice100はどれだけ中身をいじろうともメモリの使用量は変わりませんよね? なぜ途中からメモリが足りなくなるのでしょうか
Excel2003用に少し弄って動かしてみた(6回目までで止めたが) これじゃものすごく時間かかるジャマイカ それとメモリの問題を解決したとして Excel2003と同じ仕様ならだが9回目までが限度だと思う 9回目10未満の組み合わせは 999999999通り 10回目10未満の組み合わせは9999999999通り 10回目のどこかでオーバーフローしないか?
EndRは常に1だからループから抜け出せない DiceClear (Dice100()) 'Dice100()は全て1 … While EndR <> 10 ^ DiceNum EndR = 1 … For Count = 1 To DiceNum … EndR = EndR * Dice100(Count) '1*1=1 Next Count … Wend
>>269 オーバーフローっていうのは変数の最大値を超える数を代入しようとして溢れる事ですよね?
10000000000通りの組み合わせのカウントは配列Dice100で行っていて
各要素には最大でも11までしか入らないのでオーバーフローはしない、と思います
で、今になって最終的に
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000通り
の組み合わせになる事に気付きました
生きてる間には終わらなそうです
総当りではなく、計算で求められる部分は計算でやらないとどうしようもなさそうですね
でも計算ができないからExcelで総当りする事にしたのにそれじゃあ本末転倒という…
>>270 DiceNumが6になって少しあたりまでは正常に動いていたので、そこは問題無いと思います
Dice100(Count)の中身はWendの一行前のDiceAdd(Dice100())で増えていきます
272 :
262 :2008/11/18(火) 19:03:59
>>269 すみません、オーバーフローの事、理解しました
ひとまずそこだけは直しておきます
273 :
258 :2008/11/18(火) 19:19:59
2003っす
>>262 統計ソフトのRって知ってます? あれ使えばできそうな気がするのでちょっと考えてみたいんですが、Rのソース貼ったら理解できますか?
誰も262さんの 【2 Excelのバージョン 】 OpenOffice← につっこまないのにワロタ
276 :
262 :2008/11/18(火) 19:58:18
>>274 Rというのは初めて知りましたが
もし良ければソース貼って頂けないでしょうか
ソースの理解は自分でなんとかします
>>276 失礼、統計ソフトの R じゃなくて、数式処理ソフトの maxima でしたw
そいつを使うと式の展開とかがすばやくできるんですけどね、
1から10まであるサイコロの出目の確率分布に対応する「母関数」を以下のように定めます:
f(x) = (x^10+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x^2+x)/10
サイコロの目がxの指数に、係数が確率に対応していますね。x自体は形式的な変数なので、深く考えないでいいです。
それでですね、たとえば f(x)^2 を展開すると
(x^20+2x^19+3x^18+4x^17+5x^16+6x^15+7x^14+8x^13+9x^12+10x^11+9x^10+8x^9+7x^8+6x^7+5x^6+4x^5+3x^4+2x^3+1x^2)/100
になりますよね。
わかりますか? これはサイコロを2個振ったときの確率分布に対応する母関数なのです!
すなわち「母関数のべき乗」が「反復試行の和の確率分布」に対応するというわけです。
maxima のコード例はたった3行です:
f(x):=(x^10+x^9+x^8+x^7+x^6+x^5+x^4+x^3+x^2+x^1)/10;
expand(f(x)^10);
coeff(%,x,40);
1行目はサイコロの定義です。(:= 関数定義)
2行目は10個振った結果を求めています。(expand 展開)
3行目は2行目の出力に対して、出目の合計が40である確率を求めています。(coeff 係数)
結果は 28980493/2500000000 と、約分された分数形で出てきます。
【1 OSの種類 .】 Windows XP SP3 【2 Excelのバージョン 】 Excel 2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 with ActiveSheet.Shapes .Top=Range("b2").top グラフをB2:L30に貼り付けたい。 Sub MoveGpaph() With ActiveSheet.Shapes("グラフ 1") .Top = Range("b2").Top .Left = Range("b2").Left End With End Sub これだと、グラフの左上がB2に固定されるのですが、 右下を大きさを変えてL30に固定したいです。
279 :
名無しさん@そうだ選挙にいこう :2008/11/18(火) 21:13:33
VBAはちょっと学習した程度です。 A列 1りんご 2 3 4バナナ 5みかん 6 7桃 8 一列に空白と値が入っていて、上の値を次の値が入っているところまで 自動で入力したい場合、どのような操作がありますか? 上の例だと2、3にりんごを入れ、6にみかん、8に桃を入れたいのです。
>>278 こういことかな
Sub MoveGpaph()
With ActiveSheet.Shapes("グラフ 1")
.Top = Range("b2").Top
.Left = Range("b2").Left
.Height = Range("L30").Top - .Top
.Width = Range("L30").Left - .Left
End With
End Sub
>>279 作業列を使うなら
B1に=A1
B2に==IF(A2="",B1,A2)を入れて下にコピー
B列をA列に張り付ける
282 :
262 :2008/11/18(火) 21:35:36
>>277 関数定義からしてまだよくわかりませんが、これならなんとかなりそうです
これから勉強してきます
本当にありがとうございます
283 :
278 :2008/11/18(火) 21:43:15
>>279 Sub test()
For a = 1 To 50
If Cells(a + 1, 1) = "" Then
Cells(a + 1, 1) = Cells(a, 1)
End If
Next
End Sub
>>277 君が何を言っているのかさっぱりわからない。
黙って聞いてるみんなはわかってるの?
わからないから黙っているのでは?
288 :
名無しさん@そうだ選挙にいこう :2008/11/18(火) 22:44:47
a b c a d d というデータに対して 4(a b c dの4種なので)という結果を出す関数を知りたいんです お願いします
289 :
279 :2008/11/18(火) 22:46:52
>>281 値と値の間が10行空いているときもあれば、2行しかあいてない場合もあるので
関数だとうまくできなかったです。
>>284 できました。ありがとうございます。
290 :
262 :2008/11/18(火) 22:53:40
>>286 >>287 馴染みのある6面体サイコロの場合だと
サイコロ一つ振った場合の出目を表したのが
(x^6 + x^5 + x^4 + x^3 + x^2 + x) / 6
二つ振った場合はそれの二乗で
(x^12 + x^11 + x^10 + x^9 + x^8 + x^7
x^11 + x^10 + x^9 + x^8 + x^7 + x^6
x^10 + x^9 + x^8 + x^7 + x^6 + x^5
x^9 + x^8 + x^7 + x^6 + x^5 + x^4
x^8 + x^7 + x^6 + x^5 + x^4 + x^3
x^7 + x^6 + x^5 + x^4 + x^3 + x^2)
/36
---------------------------------------------------------------------
(x^12 + 2x^11 + 3x^10 + 4x^9 + 5x^8 + 6x^7 + 5x^6 + 4x^5 + 3x^4 + 2x^3 + x^2) / 36
○x^△
サイコロを2個振った時の目の合計が△になるのは○通り
という事だと思います。
まだ完全に物にしてないのであまり詳しくはわかっていませんが
こんな方法があったという事に少し感激しました。
>>290 そういうことです。あとは maxima の応援でがんばってくださいね!
293 :
258 :2008/11/18(火) 23:00:33
>>285 ありがとうございます。どこ探してもなかったのにこんな単純なとこにあったとは…
>>288 データがA1からF1に入っているとして
{=SUM(1/COUNTIF(A1:F1,A1:F1))}
296 :
名無しさん@そうだ選挙にいこう :2008/11/18(火) 23:19:16
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 非 【5 検索キーワード 】 Excel グラフ 初歩的な質問で申し訳ありません。はいといいえの2項目の割合を円グラフで出したいのですが、 なかなかうまくゆきません。
>>297 A1にはいの数、A2にいいえの数が入っていたとすると
A1とA2をドラッグしていっぺんに囲んでから挿入→グラフの円をクリックして、好きなのを選ぶ
>>275 ぶっちゃけ、環境に依存しない問題だとOSとかバージョンとか見てない
301 :
名無しさん@そうだ選挙にいこう :2008/11/19(水) 02:35:00
【1 OSの種類 .】 WindowsXP-SP3 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 IE7 EXCEL2000 マクロ 開けない IE7をインスコしたらEXCEL2000でマクロ組んだファイルが開けなく なったんですが、これは仕様ですか? (IE6に戻すと普通に開ける) 何か解決策ってあるんでしょうか? IE7スレからこちらに誘導されて参りました。
>>301 聞いたことのない症状だ。具体的にどういう状態なのかもっと詳しく書いて。
エクセルファイルをダブルクリックした時と、エクセルを起動してから開くメニューを使った場合は同じか。
何かエラーが出るのか、開けるけど挙動がおかしいのか、一瞬砂時計が出るだけで画面に変化がないのか。
新規ブックに数行のごく簡単なマクロを書いて保存した物は開けるか。
304 :
名無しさん@そうだ選挙にいこう :2008/11/19(水) 10:44:18
【1 OSの種類 .】 Windows xp he 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 少し 【4 VBAでの回答の可否】 VBAでの回答をお願いします 【5 検索キーワード 】 mid midb 以下のコードですと意図した値を返さないのですが、回避策をご教示下さい。 「東京都石井町9999-99」(あとのスペースは後で処理します)を返したいのです。 b = MidB("を受け 住 東京都石井町9999-99 ", 12, 35) mid関数以外の方法でお願いします。
>>304 VBA
b=Replace("を受け 住 東京都石井町9999-99 ", "を受け 住 ", "")
シート上の数式なら
SUBSTITUTE("を受け 住 東京都石井町9999-99 ", "を受け 住 ", "")
"を受け 住 東京都石井町9999-99 "について具体的なことが分からないのでとりあえずこれでw
306 :
名無しさん@そうだ選挙にいこう :2008/11/19(水) 11:15:28
>>305 中途半端な質問の仕方でですみません。
個人情報が入ったスペース区切りのテキストファイルがあります。(固定長)
1行120バイト×28行 が1人分でそれが1000人分あります。(すべて1つのファイルです)
そこから氏名やフリガナ、住所 等 60項目を抜き出して、一覧にしようとおもっております。
例示したものは、住所箇所で、住所はその人によってデータの長さは違いますが
かならず、その行の12バイトめから41バイトめにあります。
また住所は、全角のものもあれば半角の文字もあるのので、できればバイト数を
指定して抜き出したいのです。
因みに
"を受け 住 東京都石井町9999-99 役職 部長 "と続きます。
シート上での関すでは、midb(a1,12,30)でうまく返せるのですが、VBAになると
「????・・・」のようになってしまいます。
内部ではUnicodeであると考えて処理するんだ
>>306 エクセルの区切り位置の機能じゃだめなの?
「データ」→「区切り位置」
もしくは
「データ」→「外部データの取り込み」→「データの取り込み」
>>307 少し調べてみます。
>>308 その方法ですと、住所だけ見れば有効ですが、なにしろ
28行で1人分×1000人分なので、他の行が変なところで区切られてしまうのです
>"を受け 住 東京都石井町9999-99 役職 部長 " これ、半角1バイトとすると住所は11バイト目からじゃないの??
311 :
名無しさん@そうだ選挙にいこう :2008/11/19(水) 13:54:25
2つのセルに入力された日付の間にあたる日付データを持ったレコード内の値を合計するには どうしたらいいのでしょう? 意味わかりにくい気がしますので実例を挙げます。 A1:2007/11/19 A2:2008/11/19 とシート1に入力したとします。 シート2に、 日付 データ 2008/01/01 999 2007/01/01 500 2008/11/01 100 などのレコードがあった場合、シート1のA1,A2の入力の日付の間にあるシート2のデータの 999、100だけを合計してシート1のA3に出力するような操作です。 よろしくお願いします。 【1 OSの種類 .】 Windows2000とXP 【2 Excelのバージョン 】 Excel2000と2007を持っています 【3 VBAが使えるか .】 C言語はある程度理解できますので、リファレンスを調べながら少し考えられる程度です。 【4 VBAでの回答の可否】 コピペできるものならお願いします。 【5 検索キーワード 】 日付、文字列操作、関数など
>>306 >シート上での関すでは、midb(a1,12,30)でうまく返せる
なら
b = evaluate("=midb(a1,12,30)")
でいいじゃん
>>311 =SUMPRODUCT((Sheet2!A1:A3>=A1)*(Sheet2!A1:A3<=A2)*Sheet2!B1:B3)
314 :
311 :2008/11/19(水) 14:11:47
>>313 うおおおおおおおお!!すげえ!!!
なんと簡潔な・・・俺の昨日からの悩みはなんだったんだ・・・
ありがとうございます!これで勝つる
315 :
名無しさん@そうだ選挙にいこう :2008/11/19(水) 16:10:45
>>311 SUMPRODUCTなんて重い関数使いたくなければ、SUMIF使え。
式は長くなるけどな。
=SUMIF(Sheet2!A1:A10000,">="&A1,Sheet2!B1:B10000)-SUMIF(Sheet2!A1:A10000,">="&A2,Sheet2!B1:B10000)
317 :
311 :2008/11/19(水) 16:56:38
>>316 フムフム・・・これでも勝つるな・・・
勉強になりました。ありがとう!
>>315 作業シートに軸を統一したデータを作って、目盛りはオートシェイプで作る。
てか、そういう面倒な作業を自動でやってくれるソフトじゃないの?そのリンク先のアドインは。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 基本だけ少し 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 住所 取り出し ある列に都道府県から番地までまとめてしまった住所録があるんですが、都道府県含む番地以前までを取り出したいんですがなんとか抽出できないでしょうか? 例 ○○府○○市中央区3-5-2 →”中央区”まで ○○県○○市○○郡351-5 →”○○郡”まで LEFTで取りだそうにも各々桁が違う為、対策が・・・ ”区”、”市”等 取り出す所までの末尾の漢字はある程度絞れるので VBAでもかまいません。なんとかご助力をお願いします>< 手作業・・・無理っす;
FINDなどで"市"を探すなど単純に処理すると四日市市などに不都合が出るので 都道府県市区町村の辞書を作るか探すかして照合しながら別ける
>>319 変な住所だな。町名が入ってないし、市のあとに郡が来てるし。
本当にそんなんでいいのか?
番地の数字が必ず半角で入ってるんならワークシート関数だけでできないことはないけど。
【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 2003 【3 VBAが使えるか .】 ほんと少し 【4 VBAでの回答の可否】 少し 【5 検索キーワード 】VBA セル ランダム 別シートの列(1行目は見出し)にある空白でない値を読み込んで、ランダムに 作業中のシートの特定のセルに値をセットしたいです。 よろしくお願いしますm(__)m
>>319 その番地が必ず数字とハイフンで構成されていて、番地でない数字で終わる
ことが無いなら後ろから見て行って数字じゃないところまで来たら区切る。
>>322 別シートの空白の位置はランダム?
数字の入っている範囲がちゃんと決まってるなら乱数で位置を決めることはできるけど。
>>319 文字列の中から最初に出てきた半角の数字以降を切り落とす
=IF(MIN(FIND({"0","1","2","3","4","5","6","7","8","9"},A1&"0123456789"))<=LEN(A1),LEFT(A1,MIN(FIND({"0","1","2","3","4","5","6","7","8","9"},A1&"0123456789"))-1),A1)
>>326 数値がSheet2のA2〜C10に入っているとすると
=OFFSET(Sheet2!$A$2,RAND()*9+1,RAND()*3+1)
329 :
328 :2008/11/19(水) 23:16:35
>>326 ごめん間違えた
数値がSheet2のA2〜C10に入っているとすると
=OFFSET(Sheet2!$A$2,RAND()*9,RAND()*3)
【1 OSの種類 .】 WindowsXPSP2 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 見よう見まね 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBA EXCEL プロセス 終了 EXCELアプリケーションのプロセスが終了しない問題で困っています。 1.入力フォーマットを作り込んだEXCELファイルを用意。 2.VBを使用してEXCELファイルをコピー。 3.VBにて、コピーしたファイルの保護解除&セルにデータ設定&保護戻すなどの処理。 3.VBプログラム終了。 この時、EXCELアプリケーションのプロセスが残ったままになります。 以前も同じ処理を行っていて、その時は起きなかった現象なのですが、 EXCELファイルの入力フォーマットとマクロを変更したところ、 プロセスが消えないようになってしまいました。 試しにマクロのみを変更前のファイルのものとすげ変えてみましたが、 やっぱりプロセスは残っています。 こんな入力コントロールは駄目だよ、とか、 VBAの関数がまずいんじゃない?とか、ありますでしょうか。 お力添えをお願い致しますm(_ _)m
>>329 列だけど、A2〜A10でも同じですか?
>>319 こんなのどう?
=LEFT(A1,LENB(A1)-LEN(A1))
2バイト文字数を数えて、そも自分だけ先頭から取り出すっていう
333 :
332 :2008/11/19(水) 23:33:41
×そも自分だけ ○その字分だけ =asc()と組み合わせるとなお良いかも
334 :
331 :2008/11/19(水) 23:34:53
印刷のタイミングで取り込みたいので、セルに「=」と記述すると、毎回同じものが印刷されそうなんですけど・・・ できれば、VBAの記述でお願いしたいですm(__)m
ちょっとした質問なんですけどexcel2007って分析ってないんですか?
>>335 分析ツール?あるよ。以前のバージョンと違って標準構成だとデフォルトでインスコされるようになった。
>>334 再計算を自動記録でやってボタンに登録しておけばいいんじゃないのか
Sub Macro1()
Calculate
End Sub
こんな感じのを
この中に印刷マクロを含めてもいいし
>>334 ファイルを開きなおすだけでも毎回変わるけど。
もしかして数字を変えながら何枚も印刷したいわけ?
だったら最初から質問にそう書いてくれなきゃ。
>>334 ついでに言えば乱数ってのは次に何が出るか予想できない。同じ物が何度も続く可能性もある。
そういうのを許容するかどうかでも方法が変わってくるんだけど。
>>334 Private Sub Workbook_BeforePrint(Cancel As Boolean)
Calculate
End Sub
341 :
334 :2008/11/20(木) 06:29:27
おはようございます お答え頂いた方、ありがとうございますm(__)m 今から会社に行って、試してみます レス遅くなり申し訳ございませんでした
343 :
名無しさん@そうだ選挙にいこう :2008/11/20(木) 19:51:08
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 特定の日付 excel 特定のセルに日付が入力されていて、その日付が年を問わず1/1になった時に 隣のセルを2(普段は1)にしたいんですがどうすればいいでしょうか?
>>343 =IF(TEXT(A1,"m/d")="1/1",2,1)
345 :
334 :2008/11/20(木) 20:02:32
ただいま^^/ ゴト日ということもあって事務所にいる時間なくて出来なかった>< For ・・・・・・・・・・・・ ここでランダムにセットして ← ここが大事 印刷 Next みたいな記述してるんだけど、いいやりかたないですか? あれば教えてくださいm(__)m
あの3行で幸せになれるんですか?
348 :
334 :2008/11/20(木) 20:10:12
↑ 334です
349 :
343 :2008/11/20(木) 20:34:47
>>344 問題理解! 解決しました、ありがとうございます。
>>347 とりあえず試してみましょう
350 :
334 :2008/11/20(木) 20:37:44
了解です(´・ω・`) 明日、会社でやってみますm(__)m
なんか急に馴れ馴れしくなりやがったな 気持ち悪いヤツ
これで会社のPC壊せば大人しくなるだろ
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 条件付書式 条件付書式で作った書式を 条件に依存しない普通の書式に変換して他のシートにコピペしたいです
条件付書式開いてそのままコピーすればいいだけなんじゃ・・・
【1 OSの種類 .】 Windows XP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 メニュー メニュー→ファイルを選ぶと、使ってもないのにずっと”PDFに変換”ってのが表示されてて 非常に邪魔なんですが、これを消す方法はないでしょうか?
【5 検索キーワード 】 メニュー 検索する気まるでなしワロタw 俺は答える気まったくしないから誰か親切な暇人さっさと教えてやれ!!!
変換ソフトをアンインストールする
むしろクリーンインストール マジオススメw
わからないんならレスしなきゃいいのに
>>359 わかってても答える気がしない、と考えるのが妥当。
>>355 メニューバーのオブジェクトにアクセスして、
"PDFに変換"ってキャプションのコマンドを削除すればいいよ
362 :
334 :2008/11/21(金) 17:36:40
こんな感じでなんとか・・・ Dim i As Integer . . Randomize i = Int(Rnd() * (10 - 2) + 2) Range("YY") = Worksheets("XX").Cells(i, 1) . できました ありがとうございましたm(_ _)m
363 :
353 :2008/11/21(金) 18:20:14
>>354 出来上がった書式が必要なので
値がなくても書式が残るようにしたいのです
>>363 ワークシートをWordにコピペすると条件が消えて結果だけが残る。それをもう一度Excelにコピペする。
ただし、このままだとセルの幅や高さが狂うから、コピー元のワークシートをどこかにコピーして書式をクリア、
そこへWordからコピーしなおせばうまくいくと思う。
>365 君の勘違い、よく読んでみ
367 :
名無しさん@そうだ選挙にいこう :2008/11/21(金) 23:41:43
ぶっちゃけ
>>363 が一番悪い
説明不足にも程がある
条件付き書式が適用されてるセルを、 条件が変わっても見た目(罫線、色、フォント)は変わらないように、 通常の書式を設定してコピーしたいってことでしょ。
369 :
名無しさん@そうだ選挙にいこう :2008/11/22(土) 16:55:58
〜〜ってことでしょ
と念を押しても誰一人全く響かない
つまりは正しいのかどうかも判断できない
やっぱり
>>363 が悪いと言わざるを得ない
370 :
368 :2008/11/22(土) 17:25:21
別に擁護する気ないぞ。話を進めたいだけで
他にどんな解釈がある?オレには思いつかん
つか、さっさと補足説明しろ
>>353
>〜が一番悪い ( ´,_ゝ`)プッ。。ガキか!
これで補足説明が必要ってどんだけ読解力がないんだよ。 これもゆとりの弊害か?
>>372 誰に言ってんの?オレは
>>368 のように読んだんだが。
補足しろって言ってるのはその後の話。
>>364 のやり方でいいのか、それじゃ駄目なのか。
じゃないと全然話が進まん
374 :
372 :2008/11/22(土) 17:56:23
あー何か誤解されそうだ。 上は>369に宛てたレスで >つまりは正しいのかどうかも判断できない とはバカだな。ということ。
376 :
372 :2008/11/22(土) 18:02:00
一足遅かったか。
>>373 ここでは質問者のレスを求めるだけ無駄だと思うよ。
回答がついても8割が結果報告がない。
真面目に考えるのもほどほどにした方がいい。
だからここは回答者のレベルも低いし質問者もアレだから。
377 :
330 :2008/11/22(土) 18:08:26
>>342 VBとマクロのプログラミングについて色々調べましたが、結局
EXCELファイルが壊れている
が正解だったらしく、
新しく作ったファイルにシートとマクロを全てコピーして移したら
再現しなくなりました。
コメントありがとうございました。
>>376 それは質問系はどこもそうでしょw
「補足しろ」ってのは「解決して欲しいんなら」の話
>>378 >それは質問系はどこもそうでしょw
MOUGあたりでさえ結果報告をしていないのはわずかだよ。
>「補足しろ」ってのは「解決して欲しいんなら」
解決してるのに結果を報告してしないだけ、という状況が8割あるって事。
だからあまり親身になるなって…
>>379 2ちゃんの質問系スレってことね。オレが見てるとこ
別に解決しなくたって構わないし、行きがかりで軽く言っただけだって
揚げ足取ってまで他人の心配してるお前さんの方がずっと親身ww
雑談はそろそろ終わりにするべ
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 一応 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 関数 参照 などで セルA1に"C1" セルB1に"D5"という値が入っている場合に セルA1,セルB1を指定することでセル内の値をセル番号にして、sum(C1:D5)というようなことをしたいのですが どのようにすればいいでしょうか?
INDIRECT
384 :
名無しさん@そうだ選挙にいこう :2008/11/23(日) 13:14:52
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 ??? 散布図グラフを書くときに、目盛りラベルを下端/左端にして 目盛りと補助目盛りも一緒にグラフの枠に持って行きたいのですが どうすれば良いのでしょうか? Excelではこれは出来ないのでしょうか? よろしくお願いいたします。
たぶんメニューのグラフ→グラフのオプション→目盛り線
386 :
名無しさん@そうだ選挙にいこう :2008/11/23(日) 15:26:44
>>385 それだとグラフの軸の端から端までの長い線なのですが、
それではなく短い線がほしいのですが・・
よろしくお願いいたします。
>386 補助目盛の種類を 内向き に 補助目盛自体の表示はなしで。
388 :
名無しさん@そうだ選挙にいこう :2008/11/23(日) 19:47:06
>>387 どういうことですか?
補助目盛の種類を 内向き に しつつ
補助目盛自体の表示をなしにするにはどうしたら良いのですか?
>388 既に表示されてる補助目盛をクリックしてdeleteで消すか、 グラフオプションで補助目盛のチェックはずす。 それとは別に、y軸ダブルクリックで目盛線のオプション出して 補助目盛の種類を内向きに。
Excel2007使っています。 自動調整される行の高さについてですが、 既定の高さを変更することはできないでしょうか。 自動で調整すると上下に余裕がなく見づらいので、 上下〜ポイント空けて自動調整とかしたいです。 全体指定→行の高さをドラッグ調整だと 一行の行と改行している行が均一の高さになってしまいます。
392 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 11:35:06
行の高さ規定値は標準のフォントサイズで決まる
>>390 VBA使えば出来るかも。
自動調節した後、全体を指定したポイント分空けたサイズに再調整。
395 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 14:25:15
>>389 いや、だからその方法では目盛りはy=0とx=0の軸にしか目盛りは表示されないんです。
396 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 14:46:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 例えば、r=x+y^2+z^3 のグラフを書きたい場合、あるx、y、zのための列とそれぞれ作って、それらの値を参照する形で、 x+y^2+z^3の式を一つセルに入力した後、このセルをオートフィルして複数のセルに 連番になるように入力しますが、 もしr=x+y^2+z^3の式をr=x^2+y^2+z^3に変更したいとします。するといちいちオートフィルで 全て新しい数式でリプレイスする必要があり、非常に不便です。 これをある1つのセルの数式を変更するだけで済むような方法がありましたら教えて下さい。
>390 自分で行の高さとかいろいろ設定したブックを作っておいて、「ひながた」として 利用すればいいんじゃないの? 元となるブックは「読みとり専用」にしておけば 上書き保存できず、「名前を付けて保存」ダイアログが表示されるから誤って書き 換えることはない。
398 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 15:05:14
>>390 関係ない一列を選んで文字サイズをでかくする→行高が一律に広がる
>>396 x+y^2+z^3この式は→x^1+y^2+z^3こう考えても同じだよね
べき数をセル参照にしとけばどうかな
>>396 数式の中の関数、演算子、セル名も検索や置換が可能だから、その例の場合なら「+y」を「^2+y」に置換すればいい。
一般的に数式を一括で置き換える方法は存在しないので、もっと複雑なことをやりたいなら
その内容に応じて工夫をする必要がある。
たとえば作業列を使って「x^2」「y^2」「z^3」を個別に計算し、さらに別の列で合計を出すとか、
係数や除数なども個別に用意した作業列に入れてしまうなど。
行の高さくらい一括でかんたんに変更できるんだからそれでよさそうなもんだが
フォントサイズの変更、セル内改行、セル結合を一切やってなければ可能だけど 今回は少なくともセル内改行は使ってるみたいだから。
402 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 15:24:13
>>399 上記の例のような簡単な場合だとそれでも良いのですが、
もっと複雑な場合どうすれば良いのでしょうか?
あるセルに数式だけ入力しておいて、その式と変数をそれぞれ参照するような機能はないのでしょうか?
例えばf(x,y,z)と入力するだけで、あるセルに入力されたf(x,y,z)の関数を呼び出せるみたいな機能を必要としているのですが
よろしくお願いいたします。
エクセルで一定の余白がほしい時たしかにあるなあ 余白用のセル用意したりいろいろ工夫するけど テキストボックスみたいに書式設定から余白を設定できると確かに便利だなあ
>>402 そういうことができるのがVBA。関数を自分で定義したいならこんなふうに書くだけ。
Function f(x,y,z)
f=x^2+y^2+z^3
End Function
405 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 16:03:32
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 数式をコピーしたいときに、普通にコピーしたのでは セルの中にC8とかD4とかセル番号が入っていると D8とかE4になってしまいますが、これをそのままコピーするにはどうしたら良いのでしょうか? $C$8とかにすればこれを回避出来るのですが、$を使わずに出来る方法があれば 教えて下さい。 よろしくお願い致します。
>>405 数式バーをコピーして貼り付けたらどうよ?
>>405 別解
まず絶対参照で作ってから、置換えで「$」を消す
408 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 17:18:37
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 B13 B14 B15 B16 ・・・・・・ みたいに横向きに連番を作りたいのですが どうすれば良いのでしょうか? 普通に連番とかオートフィルをしてもうまくいきません。 よろしくお願い致します。
できるけど?
410 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 17:29:21
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 =B13 =B14 =B15 =B16 ・・・・・・ という意味です。 よろしくお願い致します。
>>410 まずB13、B14、B15と作ってからBを=Bに置換すれば=B13、=B14、=B15になる
だからExcelは計算するソフトであって見栄えや体裁を整えるソフトではないと
413 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 18:03:33
【1 OSの種類 .】 Windows2k 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 F1*G1+F2*G2+F3*G3・・・・・・・ みたいな計算をしたいのですが、SUMを使ってもうまくいきません。 VBAを使わずにこういうことって出来ないものなのでしょうか?
>413 配列数式
>>413 =SUMPRODUCT(F1:F10*G1:G10)
416 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 18:20:51
>>414 ありがとうございます。
配列数式にかんして検索してみたのですが、よく分かりません。
>>415 もし
F1*G1^2+F2*G2^2+F3*G3^2・・・・・・・
みたいな式だったらどうすれば良いのでしょうか?
よろしくお願い致します。
>>416 =SUMPRODUCT((F1:F10*G1:G10)^2)
418 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 18:25:07
>>416 中途半端に質問を書くからそうなるんだ!
俺が>415だったらもう2度とこの関連質問には答えない。
>>416 配列数式の場合は
{=SUM(F1:F10*G1:G10)}
とか
{=SUM((F1:F10*G1:G10)^2)}
とか
>>417 ,419
おれの感違い?
F1*G1^2と(F1*G1)^2は違う気がするんだけど
優先順位は^→*の順だから、F*G^2ならF*G*Gだね。 (F*G)^2はF*G*F*Gになる。
【1 OSの種類 .】 Windows2k 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 =C1001 =C1000 =C999 =C998 ・・・ みたいな逆連番をつくりたいのですが、どうしてもうまくいきません。 どなたか助けてください。
>>422 まずC1000、C999と入れてオートフィル。次にCを=Cに置換。
>>418 感想専門の人
こんなに似た質問が続くのはどう思う?
426 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 18:55:51
>>422-423 選択したセルだけ置換する方法ってないのでしょうか?
というかもっとスマートな方法ってないのでしょうか?
>選択したセルだけ置換する方法ってないのでしょうか? あります >というかもっとスマートな方法ってないのでしょうか? あります
複数セルを選択した状態なら選択セルだけが置換対象になる
>>426 どうしてもうまくいかなかったヤシが方法を教えてもらっておいて
納得いかずにもっとスマートな方法ないか聞くなんて。。。
スマート(笑)
シンプルな方法を教えれ
=INDIRECT("C"&(1001-ROW())) とか?
433 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 19:51:30
>>424 ,428
置換しようとしてもなぜか
「入力された数式は正しくありません」
とエラーが出てきて入力出来ないのですがどうすれば良いのでしょうか?
スマートな方法教えてくれ
まず痩せろ
436 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 19:57:39
1012/C$7とかだと分母のC$7も一緒に連番になってしまうのですが どうすれば良いのですか?
437 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 20:25:47
>>436 中途半端に質問を書くからそうなるんだ!
俺だったらもう2度とこの関連質問には答えない。
ひとりが暴れてるだけっぽいね
>>436 ちょっとは頭使って応用しろよ…
1012/C$でオートフィルしてから$を$7に置換
440 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 21:23:51
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 ほんの少し 【4 VBAでの回答の可否】 可 仕事でファイルを作っているのですが詰まってしまいました マクロの記録を改造するぐらいしか出来ないので 対応する値等が常に変化する場合に対応できず困っています。。。 助けてくださいm(_ _;)m Range("D2").Select Selection.End(xlDown).Select Selection.End(xlToRight).Select D2から最終行を選択して隣の隣のF列の同じ行のセルを選択している状態です このセルからD2までの範囲をコピーするというマクロを組みたいのですが どうすればよいのでしょうか?
441 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 21:29:57
【1 OSの種類 .】 XP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 否 【4 VBAでの回答の可否】 可 Sum(A2:A$2) Sum(A3:A$2) Sum(A4:A$2) Sum(A5:A$2) Sum(A6:A$2) という連番を作製したいのですが、どうしても出来ません。 どうすれば良いのでしょうか? どなたかたすけてください
442 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 21:36:28
頼むからこんな頭の悪いソフト作ったやつ 誰か殺してくれ・・・・
>>441 普通にできたよ?
=SUM(A$2:A3)
=SUM(A$2:A4)
=SUM(A$2:A5)になるが、計算結果は変わらない。
ってか吊られた?
>>440 書き方はいろいろあるんだけど、その3行を生かすなら、
range(range("D2"),selection).copy <コピー先>
って書けばいいよ。<コピー先>のとこは別の range に書き替えてね
>>443 うん
>>441 なんだこれ?
とりあえずは
aa2bb
aa3bb
とオートフィルで連番作って
aaをSum(A
bbを:A$2)
に置換すれば解決できる。
>>440 それだとF列を選択したことにはならない。入ってるデータによって範囲が変わってしまう。
D〜F列をコピーするのはこう。
Range("D2").Select
Range(Selection, Selection.End(xlDown).Offset(0, 2)).Copy
Selectionが基準となるセル、End(xlDown)で空白を除いた一番下、Offset(0,2)で2列右を指定している。
最後にCopyを付ければ、選択範囲がコピーされる。
>>443 これは良い釣りだったw
しかし良く一瞬で気付いたな
448 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 21:45:07
>>445 ありがとうございます。
aa2bb2cc
aa3bb3cc
みたいな連番を作りたい場合にはどうすれば良いのでしょうか?
よろしくお願い致します。
>>440 Range("D2:F65536").Copy
をやりたいってこと?
>>441 おめーわざとだろw
連番ネタはもういいよ
釣りってか、構ってちゃんでしょ
441のターゲットは445
454 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 21:48:18
具体的には Sumproduct(A2:A$2*C$2:C2) Sumproduct(A3:A$2*C$2:C3) Sumproduct(A4:A$2*C$2:C4) Sumproduct(A5:A$2*C$2:C5) Sumproduct(A6:A$2*C$2:C6) ということがしたいのですが・・・・
>>448 a1=aa2bb
b1=2cc
c1=a1&b1
後は下にオートフィルだ
SUMPRODUCT本来の使い方になぜ*を入れるのかだぜ
あ…ありのまま 今 起こった事を話すぜ! 『必死こいて入力して置換して・・ と説明し終わると 実は最初から解決していた』 な…何を言ってるのかわからねーと思うが おれも何を言ってるのかわからねぇ
>>433 何がやりたいのかちゃんと書いてくれ。C1000を=C1000に置換するだけなら問題なくできる。
本当はもっと長い、別の式でやろうとしてるんだろ?
459 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 22:13:12
440です
>>444 >>446 さんありがとうございました!!
書き込んだ後に検索して本を調べて下記のようなコードで無事動いて
喜んでいたのですが
お二人のコードがはるかにスマートで感動しました
頑張って勉強します!
下 = 2 '基点セルの行番号(この場合はD2の2)
右 = 4 '基点セルの列番号(D2のDの数字表記)
上 = Range(Cells(下, 右), Cells(下, 右)).End(xlDown).Row '右下端検出
左 = Range(Cells(下, 右), Cells(下, 右)).End(xlToRight).Column '右端検出
Range(Cells(上, 左), Cells(下, 右)).Select '検出した範囲を選択
Selection.Copy
460 :
名無しさん@そうだ選挙にいこう :2008/11/24(月) 22:17:39
>>458 いろいろやってみましたが、やはりVBAを使わなければ無理なことが分かりました。
元の式を多少簡略下したかたちなのですが、
f(x) = ∫(500〜x)[(1/(sqrt(y-x))*f(y) - (1/(sqrt(y-x))*df(y)/dy]dy
f(y) = 実験的に求めた数値でしか分かっていない関数(B1〜B2000にあるとします。)
A1〜A2000にはxの500から0まで数値が入っています。
上記のf(x)をExcelでグラフ化したいと考えています。
y-xが分母にあるので発散するような気もしますが、引き算になっているので打ち消し合って有限の値を持つと思います。
f(y)は決まった関数ではなく実験的に求めれらた離散的な値であるため、数値積分するしかないのですが
何とかセル上でSumProductなどを使ってグラフ化しようと試みたのですが、
かなりややこしいことになってしまい、どうしてもうまくいきませんでした。
従ってVBAを使ってグラフ化したいと考えているのですが、VBAを今まで使ったことがありません。
どなたか見本を見せて頂けないでしょうか?
よろしくお願い致します。
>>460 君が、聞く耳と応用力に欠けている事がよくわかった
よく見付けたね
最近の検索エンジンはキャッシュするの早いからな 2chのレスとかも数十分後にはキャッシュされてて検索に引っかかったりする
そういう事じゃなくて遠まわしにキモイって言われてるんじゃ…
その程度でキモがるようじゃ生きていくのも辛かろう
>>454 おめーくだらない釣りすんなよ。
そんなのにSUMPRODUCT使うヴァカはいくらなんでもいねーだろよ。
掛け算と足し算で簡単じゃねーか。
D2以下の式なら
D2に=A2*C2
D3以下に=D2+A3*C3
で簡単だろ?
D2以下に=SUM(D1,A2*C2)でもいいけどな。
キモイやつを敏感に察知できると安全に生活できるぞ ヤツラの事は逆なでせずにそっとしておけ
という書込み自体が奴等を逆撫でしてる 468はキモイ奴を敏感に察知出来ても、避けられずに構ってしまい、 結局は「安全に生活」出来ない悲しい奴
どうしても、トリは自分でとりたいみたいだね カワイイよ
> どうしても、トリは自分でとりたいみたいだね
> カワイイよ
という書込が行われた時点でのトリ =
>>470 この子、自分で卑下してることを2回続けて自分でやってる
可愛すぎ
462だけど、もしかしてヤツラの「ラ」って俺? よく見つけたも何も、一発ぐぐったらすぐトップに出てきたんだが。 まあいいけど
457だけど、複数のサイトで解答者やってるだけだと思ってたぜ 確かにぐぐったら一発で、何のことは無い
474 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 16:46:48
また上から目線選手権か そんなポーズしても、誰もお前らの事なんか見てもいなければ気にしてもねーから
普通はわざわざググらない
お前の普通が全てではない
積分をぐぐった俺に謝るんだ
ごめん
めんご!
481 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 17:27:25
質問です。 数値が入っているセルの中身を、○○万円、と表示させたいのですが、この時セルの中身を3ケタ単位で カンマ区切りしたい場合どうしたらいいでしょう? 例えば、A1:A3に、 100 5000 30000 と入っている場合、B1:B3に、 100万円 5,000万円 30,000万円 と表示させたいのです。よろしくお願いします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 みようみまねで少しだけ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 エクセル 金額 変換 千円単位
>>482 え・・・簡単に解決するのかなとは思いましたけど、そんだけ?・・・ありがとうございました。
なんか落ち込むわ・・・orz
>>483 でほぼ正解。"万""円"でも間違いじゃないけど"万円"の方がいいと思う。
0,0万円だと余計な0が入る。1万円が01万円になる。
486 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 21:25:41
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 【5 検索キーワード 】 VBAでB2とかC3とかセル番号の打ち込み方を教えて下さい。
>486 意味不明。 何をしたいのかを具体的にどうぞ。
488 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 22:19:50
>>487 具体的には
・ファンクションプロシージャを用いて
(C8*D8^3-A1000)+(C9*D9^3-A999)+(C10*D10^3-A998)+・・・・
というような計算をしたいのですが、
C8といったセル番号の読み込み方とC8,C9・・・と上げていくやりかたが分かりません。
何卒よろしくお願い致します。
>>488 iを変数としてセルの値を取得したいなら
Range("C"i).Valueてやればいいんじゃないのか
もしくはCells(i,3).Valueでもいいし
490 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 22:33:24
>>489 ありがとうございます。
でも、Range("C"i).Valueと打ち込むとエラーが出てくるのですが・・・
491 :
488 :2008/11/25(火) 22:37:26
ごめんなさい適当な解答してしまいました Range("C"& i ).Valueです これをfor i=8 to 1007〜nextとかで可変させて累計させていけば・・・ もっと効率のいいやり方とかは詳しい人を待って
492 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 22:42:18
例えば Function Fun(x) For i = 14 To 20 Fun = Range("k" & i) * x Next End Function と打ち込んでもK14〜K20の値は反映されず 7*xの値が出力されるだけなのですが・・・ どこが間違っているのでしょうか?
昨日から何度も逆順のオートフィルとかSUMPRODUCTの質問してる人 何がやりたいのかもうちょっとはっきり書いてください
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 xlsファイルを編集後、上書き保存ができなくなることがあります。 上書きしようとすると、「このファイルは現在使用中です。もう少し後で・・・」 みたいなメッセージがでます。ちなみに他に使っている人はいません。 保存せずに閉じることはできます。 97-2003形式でファイルを編集しています。
>>492 そのプログラムの無駄な部分を消してみるとこうなる。
Function Fun(x)
Fun = Range("K20") * x
Next
つまり、K14〜K19が計算式のどこにも使われていない。
根本的におかしいんだけど、何がやりたいのか(どういう計算をやりたいのか)
わからないので修正できない。
>>494 保存せずに閉じる時「変更を保存しますか?」というメッセージは出てる?
たぶんK20に7があるからx*7なんだろう ためしてないけどこれでどうよ Function Fun(x) For i = 14 To 20 Fun = Fun + Range("k" & i).Value * x Next End Function
498 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 23:21:33
>>495 すいません、ありがとうございます。
解決しました。
それと別の質問なのですが、
ファンクションプロシージャでは
Function Fun(x)
・・・
End Function
という形で関数を定義しますが、この関数の中でこれとは別の関数を定義して使いたい場合にはどうすれば良いのでしょうか?
Function Fun(x)
・・・
Function Fun2(x)
・・・
End Function
・・・
End Function
みたいに入れ子状にすれば良いのでしょうか?
>>497 試してないけどFun = Fun + の部分でエラーになる悪寒
>>498 並べるだけ
Function Fun(x)
・・・
End Function
Function Fun2(x)
・・・
End Function
501 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 23:23:49
>>500 それだとFun2の中ではFunが使えて
Funの中ではFun2が使えないのでしょうか?
502 :
名無しさん@そうだ選挙にいこう :2008/11/25(火) 23:24:54
整数を定義するときInt()を使いますが 少数の場合はdoubleですよね? double()と入力してもエラーが出るのですが、どうすれば良いのでしょうか?
503 :
494 :2008/11/25(火) 23:27:22
なんかVBAの本一冊読んでからまた来たらどうかな
>>503 ファイルを直接開かなくても、知らないうちにマクロから開いてる可能性もあるよ。
自宅?会社?
共有フォルダに入ってる?
>>501 VBAの場合、同じモジュール内で関数や手続きの呼び出しを制限するのは無理だと思う。
bからaを呼ぶこともできるし、aからbを呼ぶこともできる。
【1 OSの種類 .】 Windows vista 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 時間掛けて覚えたいとは思います 【5 検索キーワード 】売上げ平均 直近平日5日間 or 月間土日祝日 月間売上げ集計表を作る段階で、平日のみ直近5日間を集計したいのですが、土日(祝日)をまたぐことで行き詰まってます。 なにかお手数ですがよろしくお願いします。 同様に、土日祝日の直近5日間を集計もしたいと思います。 また、月初めなど5日間のデータが集まらない場合、前月分から足りない分を取り込むことは可能でしょうか?前月分は同ファイルの別シートにあります。 日付 便 12/2 12/3 12/4 12/5 12/6 12/7 12/8 12/9 直近平日5日平均 土日祝直近5日平均 曜日 火 水 木 金 土 日 月 火 平日・土日祝日 祝日 1 50 晴 50 晴 100 曇 70 晴 100 晴 120 晴 20 曇 20 曇 42 みかん 2 20 晴 20 晴 40 曇 30 晴 50 晴 50 晴 20 曇 20 曇 22 3 0 雨 10 晴 30 曇 40 晴 50 晴 20 晴 20 曇 20 晴 18 りんご なお、日付け〜土日祝日項目までは、2つのセルを結合しております。 品物と天候による売上げ変動数を把握するためです。 また品名は、一日の集計が3度あるため、3つのセルを結合してます(無関係でしょうけど) 以上、よろしくお願いします。
>>508 データはどうやって追加してくの?最終日(この場合は12/9)と平均の間に挿入?
510 :
508 :2008/11/26(水) 05:36:08
>>509 早速ありがとうございます。
わかりづらく、説明不足ですみません。日々入力をしていくのですが、項目自体は月末の後に入れる予定です。
当日までの5日間は常に数値化したいです。
余談ですが、これらは・・・
直近平日5日間の売上げ平均から、翌日の発注数の参考値にと考えております。
多すぎるとロスに、少なすぎると欠品になり、顧客離れを防ぐためです。
>>508 集計の範囲が場合によって別シートにまたがるような場合、全自動で計算するにはVBA使わないと無理
512 :
508 :2008/11/26(水) 05:47:31
>>511 ありがとうございます。
そうですか・・・
>>508 の件は、VBAを使わず3ヶ月分を一区切りにして応急処置します。
それまでVBAを勉強しますので!
12月の表を11月25日ぐらいから始めるようにして11月のシートからデータを持ってきたら? 11月の分はセルの幅を0にして見えなくすればいい
516 :
508 :2008/11/26(水) 10:48:55
>>513 ありがとうございます。これから作ります。
重要な点の報告してませんでした。これ以外に集計や平均値を出す項目を作りたいと思います。
(
>>508 の質問を教えていただいたら、他に引用できるかもと思ってましたが遠回りでした。失礼しました)
●追加したい項目
・各曜日の平均
・各曜日+便+天気毎の平均
・祝日の平均
・祝日+便+天気毎の平均
天気の良し悪しは売上げと関係してるので、明日の発注量は、天気なら平均より多めに、雨なら平均より少なめに。
とするヒントにと考えてました。
>>513 さんが仰る、売上げ数量と天気を1日1セル(統合)で表しても、上記の集計が可能なら、確かに見やすく扱いやすいですね。
それは可能でしょうか?
517 :
508 :2008/11/26(水) 11:03:54
>>514 なるほど!なるほど!考え方の骨組みは理解できました。
ただ応用力がないので式化できるかどうか・・・時間掛けてやってみます ><
ところでこの画像UPは見易いですね。本来は私がこれでUPするべきでしたね。
>>515 ありがとうございます。なるほどです!
天気を色で表現するのは勧めないなあ。天気毎の集計とかしづらくなる。 オレなら、 "日付", "曜日", "祝日", "便", "品名", 数量, "天気" で1レコード(1行)の、月毎に区切らない生データ集積シート作って、 こういう月間集計とかは別シートでやるけど。 最初はめんどくさそうでも、後々データベース的に発展させるつもりなら、 その方が後々ラクだぞ。
521 :
508 :2008/11/26(水) 12:00:15
>>518 様
とすると、データが集まっていくことを考えると、行と列の項目を入れ替えたほうが良さそうですよね?
品数は多くても40品目ぐらいなので。
業務上、月間集計やその区切りはあまり重要なデータではないので、早速実行します。
>>519 様
>>513 =
>>514 =
>>519 様ですよね?
重ね重ねありがとうございます。了解しました。天気の件、早速実行します!
>>520 様
ピボットテーブル?
見た目品祖な画像ですが(すみません><)、それがどう発展するのか?
いまから会社に行ってデータを吸い上げて、本屋に行ってピボットテーブルとやらを調べてきます。
なんか楽しみ。ありがとうございました!
522 :
518 :2008/11/26(水) 12:14:07
>>521 念のため、俺が言ってるのと
>>520 のはほぼ同じね
ピボット使うにしろ数式でやるにしろ、VBAにしろ access に移行するにしろ、
>>520 みたいなテーブルにしとくと後々なんとでもなるよ
EXILE2000 vba勉強中 [A会社]ファイル(EXILE)が在るか無いかvbaで判別する方法を教えてください セルBに[A会社]と書いて有ったら[A会社ファイル]を開く もし[A会社ファイル]が無ければ[A会社ファイル]を作成すると言う事をやりたいです ifでやるっぽいのは解るのですがファイルが在るか無いか探す方法が解りません ファイル作成と開く方法は解るのでファイルが在るか無いか判別する方法を教えてください、お願いします。
芸能には疎いのでEXILEはよく分からんが ExcelVBAでならファイルの有無はDirで調べることができる
EXILEって、CDの在庫管理ですか
お昼にうとうとしながら書いちゃ駄目ですな(;´Д`)
EXILE ×
Excel ○
脳内変換お願いします…
>>524 さん
Dirの使い方も出来れば教えて貰えますか?
529 :
481 :2008/11/26(水) 14:24:03
>>481 の質問ですが、他のソフトに流し込んだ時にも同じ表示がされるようにするにはどうしたらいいのでしょうか?
他のソフトに流し込んだ時に、表示が元にもどってしまうんで困ってます・・・
>>529 =TEXT(A1,"#,##0万円")
で、文字列に変換
531 :
529 :2008/11/26(水) 14:54:53
>>わー、できました!ありがとうございました。
教えてください! エクセルでテンキーの エンターを押したときに 下に移動する様にしたい のですがどうしたらよい のでしょうか? 超初心者ですいません。
ツール→オプション−編集−入力後にセルを移動する−下
535 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 18:59:40
【1 OSの種類 .】 Windows98 【2 Excelのバージョン 】 Excel2k 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBAで、選択したセルの番号を抽出する記述を教えて下さい。 行番号、列番号それぞれお願い致します。
なんかわざと馬鹿質問連発してる人いない?
>>535 Selection.Rowで行番号、Selection.Columnで列番号を取得できるが、行番号や列番号は多分必要ないと思うよ?
Selection.ホゲホゲと書けば選択セルを操作できる。
537 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 19:43:10
>>536 ファンクションプロシージャで選択したセルの位置が表示されるような
関数を作りたいのですが、どうすれば良いのでしょうか?
>>535 またお前かよ。いちいち仕切り直さずにまとめて訊けよ
昨日の流れからするにユーザ定義関数作りたいんだろ?
function fun(c1 as range, c2 as range, x as integer)
fun = c1.value * c2.value ^ x
end function
これで、どっかのセルに
=FUN(A1, B1, 2)
って書けば、A1*B1^2 の値が返るから。後は応用しろ
539 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 20:23:53
>>538 いや、そうじゃなくて、
セルの中身を取り出したいのではなくて、
セルの番地を取り出したいのですが・・
何卒よろしくお願い致します。
>>539 selection.address
つーかまとめてきけよ。
542 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 21:10:38
Function row (x) row = Selection.Row End Function で良いのですか? うまくいかないのですが・・・ 何卒よろしくお願い致します。
>>542 rowという関数はすでにあるので別の名前にする
あとxはいらない
Function rowrow()
rowrow = Selection.Row
End Function
>>542 Function自体いらないんじゃね?
セルに直接 =ROW()
546 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 21:35:46
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBAでいくつものセルに計算式を入力していると その式を更新したときに、セルに表示される値が再度計算されなおしてくれないのですが、 これはどうすれば良いのでしょうか? 何卒よろしくお願い致します。
formulaプロパティを指定して計算式を挿入している? プロシージャ内にCalculateっていれてもダメ? それとも昨日から流行ってるfunctionプロシージャ?
>>546 CalculateかScreenUpdatingかな
550 :
名無しさん@そうだ選挙にいこう :2008/11/26(水) 21:59:25
ツール→オプション→計算方法→自動 をセットしてみてもうまくいきません。 何卒よろしくお願い致します。
>>550 Sub 再計算()
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
ActiveSheet.EnableCalculation = True
Calculate
End Sub
>550 同じシートの利用していないセルに適当な計算式を手動で入れておいて、参照元の値を 変化させてみてください。再計算しますか?
554 :
508 :2008/11/26(水) 22:26:18
>>522 様
あーもう・・・その言葉で方針転換します ( ^ω^)/
>>508 →
>>520 様、
>>518 =
>>522 様のアドバイスへと。
また、私から情報を引き出して下さった皆々様ありがとうございました。
しばらくデータ入力作業に徹しますので・・・(会社からの持ち出し禁止から、印字からの手入力になりました)
入力完了次第ピボットテーブルの用法について質問させていただくかもしれません。
その時はよろしくお願いします。
555 :
545 :2008/11/26(水) 22:35:07
リンク先にてご回答下さった方々が居るかと思いますので、 こちらでもお礼申し上げます 明日職場で試行錯誤しようと思います
エクセルのグラフで2〜3列プロットして2〜3つの曲線(直線) を1つのグラフに描く場合の質問です。 1つを点のみ、1つを線に繋ぐにはどうしたらいいのでしょうか? グラフを描く前に点線か線に決めたら、2つとも同じにしかできません。
なんかほんとわざと変な質問連発してるやつがいるよな。
釣られてみるかw
>542
ユーザー定義関数を入力したセルの行番号なら
Function rowrow()
rowrow = Application.Caller.Row
End Function
だが、
>>544 の=ROW()で十分。
そうじゃなくて現在選択してるセルの行番号を、ユーザー定義関数でどこかのセルに表示するならそれは無理。
SelectionChangeイベントあたりと組み合わせりゃなんとかなるだろうが。
もしかして別質問の
>>546 も同じやつ?
>>556 グラフの中の線や点を右クリック→データ系列の書式設定→パターン→線→なし
釣られついでに答えると、もし現在選択してるセルの行番号をユーザー定義関数でどこかのセルに表示するなら
SelectionChangeイベントとかSheetSelectionChangeイベント等に
Application.CalculateFull
と書いておけば、
>>543 のユーザー定義関数でできる。
ただし他のすべての数式も計算するのでかなり馬鹿らしい。
>>556 ためしてみたけどできませんでした。
1列1列が全部埋まっている
1 1
2 4
3 9 とかだとできるのですが
1 2
2 4
3 6
4 9
とかなので、線で設定しても点になってしまいます。
データがないのでどうしても空欄になってしまうのですが
どうしたらいいのでしょうか?
>>560 ツール→オプション→グラフ→補完してプロットする
562 :
名無しさん@そうだ選挙にいこう :2008/11/27(木) 01:02:11
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】マクロ、エクセル、データ、ウェブページ、 貼り付け、読み込み はじめて質問させていただきます。 エクセルの列にあるデータを一つずつコピーしてウェブページの入力欄に 貼り付けるマクロを作りたいのですが、どうすれば良いでしょうか。 VBAは初心者ですが、時間をかければ読むことなら可能だと思います。 お手数ですが、どうぞよろしくお願いします。
>>562 ページの構成が決まっていて、マクロの動作中にマウスやキーボード、他の常駐ソフトのポップアップなど
邪魔が入らないという前提なら、キーボードイベントを送るのが一番簡単。
564 :
名無しさん@そうだ選挙にいこう :2008/11/27(木) 02:04:38
>>563 ありがとうございます。キーボードイベントについて少し調べてみましたが、
これはキーボードを押しているとき(あるいは放しているとき)などに動く
プログラムだと理解しました。ですが、これを使ってどのようにやれば良いのか
イメージできません。申し訳ございませんが、もう少しご教示願えますか?
あと質問についてですが訂正がありまして、ウェブページ自体は決まっている
のですが、入力欄に入力後'更新'ボタンを押すところまで自動化したいと考えて
います。
>>564 こんな感じ
Option Explicit
Sub a()
Dim ie As Object
Set ie = CreateObject("InternetExplorer.application") 'ブラウザを開く
ie.Visible = True
ie.Navigate "
http://www.google.co.jp/ " 'ページを開く
While ie.Busy = True 'ページの表示が完了するまで待つ
DoEvents
Wend
SendKeys ("ぬるぽ") 'キーボードイベントを送って文字を入力する
SendKeys ("{TAB}") 'TABキーを押したことにする
SendKeys ("{ENTER}") 'Enterキーを押したことにする
End Sub
>>564 この場合の「キーボードイベントを送る」というのは、キーボードからの入力をソフトウェアで再現すること。
アプリケーションからは、本当にキーが押されたのか、ソフト的に再現された物かは区別することができず
そのまま動作してしまう。
567 :
名無しさん@そうだ選挙にいこう :2008/11/27(木) 03:12:33
>>565 ご丁寧に説明していただきありがとうございます。
例も挙げていただいて非常にわかりやすいです。
教えていただいたものを基に自分のものに合うよう
少し考えてみます。
ありがとうございました。
今度Excelの基礎コースの教室へ行きます(全12時間) これは初心者でも勉強せずに基礎コースいけますか? Excel触ったことあるんですが、自信なくって・・・(文字うちこみと表作成と簡単な計算しかできない) 基礎コース=初級ではないですよね?
>>568 んなもん教室によって違う
基礎コースなんて大概初心者向けだろうが不安なら聞いてみればいい
>>568 初心者向けの講座なら予習はしなくても大丈夫なカリキュラムになってることが多い。
でも家に帰ってからの復習はどんな授業でも必須。
マウスの使い方から有ると思われ
>>568 なぜここで聞くwww直接問い合わせろよ
>>572 2chで聞けば何でも親切に教えてくれると思っているに違いない
俺は2chで聞けば何でも不親切に教えてくれると思ってる。
excel2000sp3ですが 1.01-1.009=0.00100000000000011 となり正しく計算出来ないんですが 新しいバージョン買えば大丈夫ですか?
>>575 釣り?
マジなら演算誤差というやつ
あ き ら め ろ 。
>>575 表示形式で小数点以下の桁数を制限して、
「表示桁数で計算する」にチェックを入れる。
579 :
名無しさん@そうだ選挙にいこう :2008/11/27(木) 20:02:58
教えてくださいませ。 エクセルで作った資料を印刷したいのですが、Wordみたく1枚の紙に複数ページの印刷は可能でしょうか? 作成した資料はブック1〜3ありまして、ブック1、2を1枚目にブック3を2枚目に印刷したいのですがわかりませんので教えてください。 【1 OSの種類 .】 Windows Vista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】
>>579 コピーしてまとめるしかないな
その後印刷範囲の設定や、ページ設定で倍率の設定をすると良い
>>580 さん
やはりWordみたくはできないんですね。
580さん方法でやって、無事完了しました。
ありがとうがざいました。
582 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 06:40:58
A4にしたいときって点線の中に書き込みますよね? この前業者から送られてきたエクセルは点線はなく 書いた量だけ印刷時にすべてA4に収まるようになっていました。 こういう風にするにはどうすればいいのでしょうか?
______ | |.| ∧∧ =====(,,゚Д゚)∩= |_|.⊂ ノ / 0 し´ \ えっ…と、過疎でDAT落ち間近なのは・・・ /  ̄ ̄ ̄ ̄V ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ∧∧ ∧∧ __._ ∩゚Д゚,≡,゚Д゚) |.| `ヽ |)==== | _ |〜 .|__|.| U U ∧∧ ミ _ ドスッ ( ,,)┌─┴┴─┐ / つ.DAT 落ち│ 〜′ /´ └─┬┬─┘ ∪ ∪ ││ _ε3 ゛゛'゛'゛
584 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 08:20:31
毎年、秋から冬にかけてはヘルプで調べりゃ判る程度の質問が増えるね どうしてだろ?
585 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 08:22:31
そんな理由もわからないって相当なゆとりだな
Sheet1とSheet2の内容の違いを出力する為に以下のようなマクロを作りました。 このマクロ自体はSheet3で実行するのですが、Sheet1とSheet2の両方で空白のセルは結果が「0」と 表示されてしまいます。両方のシートで空白なのですから結果も空白としたいのですがどうしたら 良いでしょうか?どうかお助け下さい。 (このマクロはSheet3のセルA1に「=IF(Sheet1!A1=Sheet2!A1,Sheet1!A1,"●" & Sheet1!A1 & " → " & Sheet2!A1)」 と打ち込んでそれを下方向に1000行目までオートフィルし、さらにそのまま右方向に最終列までオートフィルして 作りました。) Sub Macro1() Range("A1").Select ActiveCell.FormulaR1C1 = "=IF(Sheet1!RC=Sheet2!RC,Sheet1!RC,""●"" & Sheet1!RC & "" → "" & Sheet2!RC)" Selection.AutoFill Destination:=Range("A1:A1000"), Type:=xlFillDefault Range("A1:A1000").Select Selection.AutoFill Destination:=Rows("1:1000"), Type:=xlFillDefault Rows("1:1000").Select End Sub 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】IF関数、マクロ、エクセル
588 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 10:40:37
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excelには「並び替え」というものがありますが、これをすると他の列にまでその並び替えが反映してしまいます。 これを他の列に影響が及ぼさないようにして並び替えする方法を教えて下さい。 それと例えば、選択したセルだけで、降順、昇順といった並び替えをする方法がありましたら教えて下さい。
>>587 "=IF(AND(Sheet1!RC="""",Sheet2!RC=""""),"""",IF(Sheet1!RC=Sheet2!RC,Sheet1!RC,""●"" & Sheet1!RC & "" → "" & Sheet2!RC))"
>>588 列を選択して並び替える時に「並び替えの前に」ってダイアログが出てくるはずなので
ここで範囲を拡張しなければいいだけのはずだが
>>590 一致判定後に一方の""見ればANDは不要だけどね。
593 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 11:36:20
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 グラフのワークシートの上に文字を書きたいのですが、挿入のところにテキストボックスがありません。 どうやって挿入すれば良いのでしょうか? いくつかのセルの内容に関連づけた状態でセルの中身をグラフのワークシートの上に 貼り付けたいのですが、どうすれば良いのでしょうか? 何卒よろしくお願い致します。
594 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 13:04:09
>>593 「挿入」→「図」→「オートシェイプ」で、図形描画ツールバーを表示。
そこからテキストボックスを挿入出来る
小数点を含んだ数字の列にダブルコーテーションを追加したいのですがどうすればよいでしょうか? 112.3376654 112.3376655 112.3376656 112.3376657 112.3376658 ↓ "112.3376654" "112.3376655" "112.3376656" "112.3376657" "112.3376658" 上記のようにしたいのですが;;
>>595 '"112.3376654"
で表示は出来るが、量が多い場合どうすれば上手く行くか良く分からないな
リストを作ったときのプルダウンメニューですが、 表示させるときのショートカットキーはありますか?
>>595 作業列使えばいいじゃん
="""" & A1 & """"
みたいに
>>597 [Alt]+[↓]でいけなかったけ?
>>598 >>595 じゃないんですが、質問させて下さい
何故
="""" & A1
なんでしょうか?
" "の間には""が入ってるので、""が表示されると思うんですが・・
>>601 ありがとうございます
そんなルールがあったんですね
603 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 14:57:49
>>594 ありがとうございます。
でもオートシェイプのところを見ても見あたらないのですが・・・
それとセルの内容との関連づけの方法もできれば教えて下さい。
よろしくお願い致します。
>>603 テキストボックスの内容を入力する場面で、テキストボックスの中ではなく
数式バーの方に「=A1」のように式を書く
グラフエリアを選択してる状態で数式バーに「=」だけ打ち込んで、 マウスで関連付けしたいセルを選択すれば、勝手にテキストボックス作ってくれるよ
609 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 19:37:27
>>606 ありがとうございます。
でも、わがまま言うようですけど
これって複数のセルを選択することはできないのでしょうか?
これができないとかなり不便なのですが・・・
>>609 1つのテキストボックスから参照できるセルはどんな方法でも1つだけだったと思う
>582 質問にはテンプレートを使ってください。無視されますよ。 まだ、誰も回答していないようなので、Excel2003で説明します。 ページ設定のダイアログにて 次のページ数に合わせて印刷(F) のラジオボタンをクリック するだけです。 横と縦のページ数はいずれも 1 のまま。 拡大縮小率は自動的に変更されます。
612 :
名無しさん@そうだ選挙にいこう :2008/11/28(金) 22:52:33
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 VBAに関しての質問なのですが、 For i = 1 To 10 ・・・・ ActiveChart.SeriesCollection(1).Values = "=zero!R13C" & i & ":R1013C" & i ・・・・ Next という表記を使うと 「修正候補 ステートメントの最後」 というエラーが出るのですが、どこを直せば良いのでしょうか? よろしくお願い致します。
>>612 どこも間違ってないからエラーの原因はほかにある。
たぶん直前の行あたりにダブルクォートか括弧が足りない。
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 セルに 「="1わる3は"&1/3&"です"」 って入力すると 「1わる3は0.33333333です」 と表示されるけど、 ここで有効数字を小数点以下○桁って指定したいです どうすればいいの?
ROUNDワークシート関数使えばいいんじゃね?
>>614 セルの書式設定 > 表示形式タブ > 数値 > 小数点以下の桁数
相談に乗って下さい。 下のようなデータに都道府県ごとに関数を使って上から番号を 付けたいのです。 元のデータです。 01北海道 01北海道 01北海道 01北海道 02青森県 02青森県 ↓ 下のようにしたのです。 ↓ 01北海道 1 01北海道 2 01北海道 3 01北海道 4 02青森県 1 02青森県 2 よろしくお願いします。
>>617 c1に1を入れて、c2に、=if(b1=b2,c1+1,1)
以下、下方向にコピー
>>617 b1に1を入れて、b2に、=if(a1=a2,b1+1,1)
以下、下方向にコピー
マクロを実行させるような関数ってない?
>>623 セルに=マクロ()って書けば再計算のタイミングでそのマクロが実行される
マクロから別のマクロを実行したいなら、そのマクロ名を1行書くだけ
>>609 選択だけは一応できるが、表示されるのは範囲の左上セルの値だけ
つか、どういうことがしたいのか具体的に書けよ
複数セルを書式のまま表示したければ、図のリンク貼りつけとか
複数セルの値を元に連結したものを表示したければ、連結用セルを作ればいいし
Excel2007を導入したのですが ワードアートで文字を挿入したあと、枠に合わせて文字の大きさを調節するのってどうやるんですか? Excel2000だとデフォルトで枠を広げれば中の文字も枠に合わせて大きくなったんですが 解決法お知りの方、どなたかよろしくおねがいします
628 :
587 :2008/11/29(土) 08:23:13
>>590 うまく空白が表示されるようになりました!
わざわざありがとうございます。・゚・(つД`)・゚・
631 :
名無しさん@そうだ選挙にいこう :2008/11/29(土) 14:13:45
初心者板に人がいないので、こちらで質問させてください。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 目盛り線 エクセル 範囲 エクセルの折れ線グラフで、 縦軸の数値の一定範囲を帯のように強調して表示する方法ありませんか? 例えば、 折れ線グラフ上で60〜80%を合格範囲と表示する場合、 目盛り線と目盛り線の間を、違う色の背景にしたいんです。
そういうのなら手作業で塗りつぶしの四角形いれればいいじゃん
塗りつぶしの 四角形を いれたら いいんじゃ ないでしょうか?
>>634 スマンもう少し分かりやすく説明してくれ
だからダーっといってポチっとすりゃいいんだよ
初心者板から来た人なのに。。。ヒドス。。。
初心者板って、日本語も通じないのか?!
もう少しわかりやすく説明してください じゃなくて ○○ってどーやんだわからんぞボケ って聞けよ
エクセルで塗りつぶしの四角形を描いたことがないならそういえよ 詳しくとかどこまで詳しく説明すればいいのかわかんないだろうが
熱くなんなよ。別にお前ご指名で聞いてる訳じゃないだろうからさw
そして質問の答えは一向に書き込まれないのであった。
643 :
632 :2008/11/29(土) 15:46:23
混乱させてしまい申し訳ないです。 塗りつぶしの四角形というのは、図形の四角を作り、塗りつぶした上で、 棒グラフの図に貼り付けろという意味ですか? それだとグラフの線自体が消えてしまうのですが・・
644 :
名無しさん@そうだ選挙にいこう :2008/11/29(土) 16:11:30
>>613 ありがとうございます。
Sub Macro4()
For i = 4 To 8
Charts.Add
ActiveChart.ChartType = xlXYScatterSmoothNoMarkers
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "=zero!R13C1:R1013C1"
ActiveChart.SeriesCollection(1).Values = "=zero!R13C"&i&":R1013C"&i
ActiveChart.SeriesCollection(1).Name = "=zero!R12Ci"
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasTitle = False
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "x axis"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "y axis"
End With
Next
End Sub
でもどこが間違えているのでしょうか?
赤いマークがついているのは、
ActiveChart.SeriesCollection(1).Values = "=zero!R13C"&i&":R1013C"&i
の行なのですが・・
よろしくお願い致します。
>>643 塗りつぶした四角形の透過性を上げる・あるいは半透明にするか、
グラフの背景と枠の色をなしにして、
塗りつぶしの四角形を順序後ろにもっていけば?
こっちの方が確実っぽい。
もしくはセルサイズ調整して塗りつぶし。
646 :
632 :2008/11/29(土) 17:20:47
>>645 順序については、独立のシートで図を作ってる所為か、
うまくいきませんでした。
でも「透過性を上げる」で、希望通りの表示が出来ました!
ありがとうございました!!
>>644 &の前後にスペースを入れろ
ActiveChart.SeriesCollection(1).Values = "=zero!R13C"&i&":R1013C"&i
↓
ActiveChart.SeriesCollection(1).Values = "=zero!R13C" & i & ":R1013C" & i
648 :
644 :2008/11/29(土) 18:33:27
>>647 ありがとうございます。
うまくいきました。
あと2つアドバイスを頂きたいのですが、このVBAはzeroというシートから自動的にグラフを作成するプログラムなのですが、
これを現在選択しているシートにするためにはどうすれば良いのでしょうか?
それと作成するグラフの名称を自分で設定したセルの内容にしたいのですが、
どうすれば良いのでしょうか?
よろしくお願い致します。
>>648 シートの選択
Worksheets("zero").select
セルA1の内容をグラフのタイトルにする
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = Range("A1")
650 :
名無しさん@そうだ選挙にいこう :2008/11/29(土) 20:51:36
>>649 ありがとうございます。
シートの選択
というところなのですが、zeroシートではなく、現在選択しているシートに適応されるようにしたいのですが・・
何卒よろしくお願い致します。
A1 B1 C1 D1(=C2) A2 B2 C2 A3 B3 C3 今このような表があります。A3の行は集計行です。 この表にはどんどんデータが追加されていきます。 追加の際にはA2とA3(集計行)の間に行を挿入し、追加します。 このとき A1 B1 C1 D1(=C3) A2 B2 C2 A3 B3 C3 A4 B4 C4 A1 B1 C1 D1(=C4) A2 B2 C2 A3 B3 C3 A4 B4 C4 A5 B5 C5 ・ ・ ・ というようにD1セルに表示させる関数を教えていただきたいです。 よろしくお願いします。
ちょっとわかりにくかったかもしれないです。 要はD1セルに、行を挿入した場合自動的にC列の集計値セルの上の値を表示させる関数が知りたいのです。 お願いします。
>652 集計行の行位置が4のとき(651の真ん中の例のとき)、D1セルに =OFFSET(C1,ROW(C4)-2,0) と入力してください。 行を挿入すると、ROW(C4)→ROW(C5)というように補正されていきます。
>>652 携帯からなので手短にこんなのは?
=OFFSET(C1,COUNT(C1:C65536)-1,0)
携帯からこういうスレ見る人 しかも答えてくれる人なんているんだ、感激した
>>653 ありがとうございます、できました
>>654 関数を入力しましたがなぜか"0"になってしまいます…
657 :
653 :2008/11/29(土) 22:42:50
654さんのをExcel2003でやってみたら、 =OFFSET(C1,COUNT(C1:C65536)-1,0)が =OFFSET(C1,COUNT(C:C)-1,0)に 自動的に変化しました。よりすっきりしましたね。 と思ったら、集計行を参照してしまってます。集計行のひとつ上のセルの値を参照するには =OFFSET(C1,COUNT(C:C)-2,0)が正しいですね。 ただし、C列の1行目から集計行のひとつ上までの間に空白セル(または文字)があったり、 集計行の下(C列のみ)に何か数字が入っていると参照位置がずれてしまいますね。
>>657 なるほど、実際の環境では空白セルや文字が入りまくりなので
参照位置がずれ、計算がうまくいかないみたいです
ありがとうございました
>658 空白セルはともかく、「文字が入りまくり」はマズいんでは? C1から集計行のすぐ上までは集計対象なんでしょ?
=OFFSET(C3,-1,) でいいだろ 上から行数数えたら何のためのoffsetかわからん
EXCEL2008ではデフォルト設定ではVBAが使えないと聞いたのですが本当ですか? 将来的には完全に排除される方向にあるのですか?
>>659 文字が入ってるのは集計行の下ね
集計結果はきちんと反映されてるから問題なし
>>660 それでもできました、ありがとう
>>650 シート名を書かなければ選択中のシートと見なされる
ActiveChart.SeriesCollection(1).Values = "=zero!R13C" & i & ":R1013C" & i
↓
ActiveChart.SeriesCollection(1).Values = "=R13C" & i & ":R1013C" & i
665 :
名無しさん@そうだ選挙にいこう :2008/11/30(日) 10:31:21
XP 2003です。 いくつもの楕円とかの図にマクロを登録しているのですが、各図に登録された マクロ名を一覧で見るにはどうするのでしょうか?
666 :
666 :2008/11/30(日) 16:10:10
失礼いたします。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 ほんのちょっと 【4 VBAでの回答の可否】 可(コードを書いて頂きたいです) 【5 検索キーワード 】 エクセル VBA グラフ 範囲指定 列 項目 A列からC列、約60000行(1行目が見出し)のデータがあり、A列とB列を範囲指定して 1.系列は列、 2.凡例は上、 3.グラフの場所は同じシート のような簡単な折れ線グラフ(データとマーカ)を作成したいのですが、 C列に記入されている項目別にグラフを作りたいのです。 C列には一定ではない連続した行数毎に、A-1、B-1、C-1、D-1、A-2、B-2、C-3、D-4・・・と最終行まで記入されていて、 J列 A-1のグラフ B-1のグラフ C-1のグラフ D-1のグラフ ・ ・ といった具合に、横位置はJ列あたりで下に下にグラフが作成されていくとベストなのですが・・・ よろしくお願いします。
式のあるセルを書き換えられないようにしたい。 しかし,VBAによって,オートフィルタとセルの背景色変更は行いたい。 データを入力するセルはロックを外し,「ロックされてないセル範囲の選択」と 「オートフィルタの使用」のみチェックして,シートの保護をした。 しかし,ファイルを保存してから開くとうまく動作しない。 すべてのセルが選択できなくなり,オートフィルタも動作しない。 どのようにすればよいでしょうか?
668 :
名無しさん@そうだ選挙にいこう :2008/11/30(日) 19:26:26
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 超初心者(殆どわかりません) 【4 VBAでの回答の可否】 可(コード書いて下さい。お願いします) 【5 検索キーワード 】 VBA マクロ セル 結合 支社の売り上げを月ごとに集計して会社のフォームに沿って印刷し、 提出しなければなりません。 A列は年、B列は月、C列は日、D列は担当者、E列商品名、F列は単価が入力してあります。 (すでに年、月、日、担当者ごとに並べ替えられてあり、印刷フォームも設定されています) 自分が今後自動でしたい作業は 単価以外の各列で同じセルを結合し、 毎月の最後の行の下に集計行を挿入し、 その月の売り上げ合計を計算する です。商品が多岐に渡るため行数が多く、指定された印刷フォームでは字が細かくなり、 見づらいのでセルを結合させていますが、手間がかかるし範囲指定を間違うこともあります。 自動でできれば大変助かります。どうかよろしくお願いします。
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 全く使えません 【4 VBAでの回答の可否】 否(手取り足取り教えていただけるなら) 【5 検索キーワード 】 特定条件の足し算 A1 B1 C1 D1 A2 B2 C2 D2 A3 B3 C3 D3 ・ ・ ・ D2セルには=D1-A2という数式が入っています。 D3セルにも同様に=D2-A3という数式が入っており、以下同様に続きます。 このときD2セルに、C2セルに特定の文字を入力するとD2=D1-A2+B2の結果を表示させるような関数を入力したいです。 お願いします。
671 :
名無しさん@そうだ選挙にいこう :2008/11/30(日) 21:14:01
ピボットピボットってうぜえんだよピボット厨
>>665 VBEでエディットウィンドウの右上のプルダウンリストを開くとマクロ名の一覧が出る
674 :
670 :2008/11/30(日) 21:30:39
>>672 あっさりと・・・
ありがとうございます!
【1 OSの種類】 WindowsXP homeエディション 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか】 殆どわかりません 【4 VBAでの回答の可否】 可 【コードがあれば貼り付けて記録できます】 【5 検索キーワード】 エクセル マクロ 画像 VBA エクセルでアルバム写真を作っているのですが、写真ファイルの貼り付け動作 【挿入→図→ファイル→【選択画面】→当該写真貼り付け→画像プロパティ→サイズの変更】 上記の動作をマクロで簡単に行いたいのですが、どのようなコードになるのでしょうか? 情報 ・マクロ登録したコマンドボタンを押したら【画像選択画面】にいくようにしたい。 ・画像ファイルを選択したら、指定したセルに貼り付け→写真の自動縦横サイズ変更。 ・カメラで撮った写真は、全てjpgですが、なぜかファイルネーム及び縦横サイズがバラバラです。 ・エクセルのテンプレート【ローン計画書】→ユーザー設定ボタン→ロゴマーク挿入ボタン が上記説明の理想で、教わりたいです。 ・8月分写真フォルダ→写真フォルダ→10枚ぐらいのjpg画像という様な階層でまとめています。 ・ローン計画書テンプレートのマクロはコード見られたくないようでパスがかかってました。 よろしくお願いします。
つ マクロの記録 つーか偶にxlsでアルバム作ってる初心者さん見るけど Excelでやるべきことじゃないよな アルバム作成ソフトとか知らないのかな?
677 :
675 :2008/12/01(月) 01:08:20
>>676 ご回答ありがとうございます。
・マクロの記録→【画像選択画面】まで操作→マクロ記録終了
これだと何も操作しないでマクロ記録終了してるのと同じになりました。→(何も起きない)
・マクロの記録→当該写真貼り付けるまで操作→マクロ記録終了
当該写真を貼り付けるだけの記録になりました。→(画像選択できず当該画像貼り付け)
資料フォルダ→画像のファイルネームのリネームをすれば二つ目で可能そうですが、
テンプレのような動作にできれば便利だと思っております。
getopenfilename *.jpg 左記みたいな感じで選んで、貼り付けたいです。
>>アルバム作成ソフト
すみません。インストール権限がないのに加え、
無闇にソフトが入れられない仕事のパソコンという事をかいていませんでした。
上記の事からエクセルで行えれば助かります。
よろしくお願いします。
Excelは表作成と足し算(?)くらいしか出来ません。 どこか分かりやすくやり方を書いてる本やサイトってありませんか? よろしくお願いします;;
>>677 > 無闇にソフト(exe形式にコンパイルされたプログラム)が入れられない仕事のパソコン
なら、無闇に何処の誰が作ったとも解らないマクロ(インタプリタ実行型、もしくは中間言語コンパイル型のプログラム)を入れるのもまずいね
ということは自分で書くしかないわけだな
まあマクロの記録で挿入される画像が固定になるのは当然のことで
挿入やサイズ変更の対象を任意のものにしたければGetOpenFilenameメソッドと画像の挿入時の戻り値を使えとだけ言っておく
>>678 >>3 ・B
【1 OSの種類 .】 Windows 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 はい・いいえ 【4 VBAでの回答の可否】 可・否 【5 検索キーワード 】 Googleやヘルプでの検索キーワード
【1 OSの種類 .】 Windows Vista と XP 【2 Excelのバージョン 】 Excel 2007、場合によっては2000も使用 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Excel VBA 引数 シートAにSQLサーバから抽出したデータを取り込み、 シートBでそれを検索し、ヒットするセルが存在するなら、シートB内の任意のセルの文字色を変更する、 という仕組みを作りたいと思ってます シートB A1 1234 <-検索ワード B1 ==IF(ISERROR(VLOOKUP($A1,シートA!$A:$D,4,FALSE)),"NOHIT",chgcolor($C1)) C1 ABCD <-元々赤い文字、これをB1が偽なら青くする ※これが2行目以降も続き、100件ほどになります chgcolor()はユーザー定義関数とし、引数で変更対象となるセルの位置を渡すことで、 大量の作業に対応しようと考えましたが、想定する動作になりませんでした Function chgcolor(a As Range) MsgBox a.Address Range(a).Font.Color = RGB(0, 0, 255) End Function この関数の動作結果は、メッセーボックスには$C$1が表示、色は変化無しとなりました 引数を格納してる変数aの表記の仕方に問題があるのかと思いましたが、 Range(”C1”).Font.Color = RGB(0, 0, 255) と書き換えてもやはり変化がありません、問題点を教えていただければ幸いです
ワークシートから呼ばれたユーザー定義関数内からは色を変えるなど一部の操作はできない どうしてもやりたいのならユーザー定義関数外から行う
684 :
682 :2008/12/01(月) 11:07:42
なるほど・・・直接操作はできないのですね ちなみにユーザー定義関数外で実行とはどうするのでしょうか Subプロシージャを定義して呼び出す形にしましたが、当然のように動きませんでした マクロを実行コマンドでSubプロシージャを直接叩いてもいいかとは思いましたが、 今後検索項目が増えたりする可能性もあるので、出来ればセルの位置を渡して 任意のセルに対して動作する設計にしたいのです
>>677 ファイル選択
これでファイル名が変数に入る
Filename = Application.GetOpenFilename("写真(*.jpg), *.jpg,すべてのファイル(*.*), *.*")
>>684 ユーザー定義関数にこだわらなくてもいいと思うけどやりたい場合
標準モジュールモのModule1に
Dim a
Function b(c)
a = c
End Function
Sub d()
Range(a).Font.Color = RGB(0, 0, 255)
End Sub
ThisWorkbookに
Sub Workbook_SheetCalculate(ByVal Sh As Object)
Module1.d
End Sub
など別のタイミングで実行する、この例では一箇所しか変えられないけど
688 :
名無しさん@そうだ選挙にいこう :2008/12/01(月) 11:57:48
Excel2003を使ってます 毎月のこづかい帳をつくろうと思ってます 月予算30,000円、日予算1,000円 B3からB33に日付 C3からC33に支出金額 D3からD33に残額 E3からE33に予算との差額 残額と予算との差額のところにどのような計算式を入れればいいのか悩んでます 予算との差額のところは、例えば 12/1に700円の支出があったら12/1の差額は+300円 12/2に1500円の支出があったら12/2の差額は-200円 12/3に600円の支出があったら12/3の差額は+200円 ・・・ となるようにしたいと考えてます 勉強不足で申し訳ありません・・・どうかご教授お願いします
作業列を使い、 その日までの日予算の累計を計算し 差額を取っては。
>688 予算をA1に入力してE3=$A$1-C3でオートフィル 延々と質問が続きそうな気配なんで以後は適当にサンプル が載ってる本を買って来い。
691 :
690 :2008/12/01(月) 12:09:57
>688 >予算をA1に入力してE3=$A$1-C3でオートフィル 間違えた(汗 >689氏の案を推奨
692 :
682 :2008/12/01(月) 12:15:04
>>686 ユーザー定義関数を利用したいと思ったのは、682の通り、
検証セル内に記述して、引数として任意のセル位置を与えた上で、操作(色替え)を行いたかったからです
例示いただいたコードは試してみたいと思います
>>687 条件付書式は既に試して、初期の段階では理想の結果が得られましたが、
指定方法が悪いのか、行削除や挿入を繰り返すと結果を反映しないセルが出るなどの
トラブルがあり使用をやめてしまいました
>>692 相対参照と絶対参照を勉強して条件付き書式でやり直すのが一番早い
694 :
688 :2008/12/01(月) 12:56:56
>>689 >>690 ありがとうございます
最後に一つだけ質問させてください
>>689 さんのアドバイスしてくれたやり方の手順だけ教えていただけないでしょうか?
質問は今後しませんのでどうかお願いします
「作業列」という言葉すらわかりません・・・
>>690 さんの方法ではダメなんでしょうか・・・
>>694 作業列ってのは、計算の途中経過をどこか空いてる列に入れておいて、式や表を見やすくするためのものだよ。
この場合は、仮に支出がゼロだった場合の残金をどこかの列に入れておいて、毎日の残高の計算に使うってこと。
696 :
682 :2008/12/01(月) 13:08:37
>>693 相対/絶対参照の基本は習得してるつもりですが、
682の例でC列を列選択状態にして、条件付書式を設定
式 $B1=1 適用範囲 $C:$C となり書式を青塗りにすると動作はします
ここで例えば、10行目を削除、再度挿入とやった後にルールを見ると
式 $B1=1 適用範囲 $C1:$C9
式 $B10=1 適用範囲 $C10:$C1048576
と二つに分裂します、削除挿入は一度とは限らないので、
これを繰り返すたびに条件式が分裂するようなので、
A〜C列のような組み合わせを追加するようなことになった場合、大量の条件式が発生し
メンテナンス性が著しく低下してしまう結果となってしまいました
(以上、2007で現象確認)
もし上記の指定の仕方が悪いのであれば、その点を教えていただきたいです
697 :
690 :2008/12/01(月) 13:18:33
>694 F3に=E3、F4に=F3-E4でオートフィル。 ってかこの場合、F列は作業列ではなく欲しい結果だな。
698 :
690 :2008/12/01(月) 13:27:37
ア・・・また何か違うな・・・orz A1に予算を入れたとして、 D3=$A$1-C3 F3=D3、F4=F3+D4・・・当日までの差額累計(作業列) E3=F3、E4=F3+D4 あるいはE4=sum($D$3:D4) 多分合ってるw 出かけるんで後ヨロシコ ノシ
>>696 2007で試したけど、崩れんよ?
なんか変な思い込みとか設定してるんじゃない?
皆が言ってるように、SQLServerからデータ引っ張ってくる時に色付けるか、条件付き書式が楽そうだけどなあ
自分の思い通りの方法じゃないとイヤなら、がんばってネとしか言いようがないさ
700 :
682 :2008/12/01(月) 13:56:03
>>699 崩れませんか・・・自分のやり方が、何か根本的に間違ってるようですね
この現象さえなければ、条件付書式で処理というのはまったく問題ないのですが・・・
ちょっと設定や削除の仕方などについて検証してみます、ありがとうございました
>>688 に回答しようとしてるやつかなり乙だな
質問の中で予算が2種類あるのに「予算」の一言で済まそうとしてるから
あいまいな部分があるから混乱してるんじゃ?
B2に日予算(1000)
C2に月予算(30000)
を入れて
B2には支出を入力
C3=C2-B3(月予算の残額-支出)
D3=$B$2-B3(日予算-支出)
で日数分コピー
ここまでやったらC2やB2はカットアンドペーストでどこかに持って行ってもいい
702 :
名無しさん@そうだ選挙にいこう :2008/12/01(月) 15:22:38
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━ 【1 OSの種類 .】 WindowsXP SP3 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 excel 数式 文字列 例えばセルC1に"=A1-B1"と入っています。 C1からA1-B1の計算結果ではなくて"=A1-B1"という文字列を取得したいのですが どうしたら良いのでしょうか? 何卒よろしこ
>>702 名前の定義で
名前:数式
式:=GET.CELL(6,$C$1)
で、どこかに =数式
式じゃなくて参照範囲だった・・・
>>702 数式を取り出したいセルが1ヶ所や2ヶ所なら名前の定義
たくさんあるならVBAで.Formulaを使う
706 :
名無しさん@そうだ選挙にいこう :2008/12/01(月) 16:29:19
>>703-704 回答サンクスコ。
でも相変わらず"=A1-B1"では無くて計算結果(=0:A1もB1もゼロなので)が表示されるです。。。
orz....
>>706 何か勘違いしているな・・・
Ctrl+F3で出てくる「名前の定義」ですよ?
入力したら
D1 =数式
とかすればいいだけ
こっちは2003でやってるからショートカットは違うかも試練
>>706 まずC1をクリック
メニューから挿入→名前→定義を開く
名前のところに「SIKI」と入れる
参照範囲のところに「=GET.CELL(6,$C$1)」と入れてOK
式を出したいセルに=SIKIと入れる
709 :
702 :2008/12/01(月) 17:00:09
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 数式 コピー オートフィル B2に入力した文字をB4B5にコピー C3に入力した文字をC5C6にコピー といったように一列ずれるたびに一行ずつずれていくようにしたいのですが、 オートフィルで一気に入力していくにはどうしたらよいでしょうか。 また、オートフィル以外で可能でしたらご教授お願いします。
fff
>>710 B4=IF(ROW()=COLUMN()+2,INDIRECT("r"&ROW()-2&"c"&COLUMN(),0),IF(ROW()=COLUMN()+3,INDIRECT("r"&ROW()-3&"c"&COLUMN(),0),""))
indirectを極めれば・・これぐらいわけない!
>>700 いまさらだけど条件付き書式で実現できるなら
worksheet_changeのイベントプロシージャ使ってもなんとかなりそうだけど・・・
>>710 こういうのでいいの?
1. 仮入力:各列1行目のセル(B1, C1, D1 …)にデータを入力
2. B2に式を入力
=IF(AND(B$1<>"",OR(ROW()=COLUMN(),ROW()=COLUMN()+2,ROW()=COLUMN()+3)),B$1,"")
3. B2を必要な範囲にコピー
4. 式を入れた範囲を「形式を選択して張り付け→値」で上書き
5. 仮入力した1行目をクリア
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 1 リンゴ 2 (青森) 3 4 みかん 5 (愛媛) 6 ↓ リンゴ リンゴ リンゴ みかん みかん 上のように地名を消して空欄に項目をコピーして埋めたいのですがどうすればよいでしょうか? ちなみに300行くらいのデータがあります。
>>713 …これでいいと思。
B4 =IF(COLUMN()+2=ROW(),B2,IF(COLUMN()+3=ROW(),B3,""))
718 :
名無しさん@そうだ選挙にいこう :2008/12/01(月) 22:53:59
>>710 >B2に入力した文字をB4B5にコピー
「入力した」時にコピーしたいならVBAしかない
既にその形で入力してあるなら
別シートに↓の「Sheet1」を目的のシートに書き換えて貼り付けて好きなだけコピー、後はお好きなように
=IF(AND(ROW()>=COLUMN(),ROW()<=COLUMN()+3,ROW()-COLUMN()<>1),INDIRECT("Sheet1!R"&COLUMN()&"C"&COLUMN(),0),"")
これからやるなら
>>715 でいいかと
>>716 「(」が地名のみに使われてる前提で
A1からデータが入ってるとして
B1=A1
B2に=IF(OR(A2="",NOT(ISERR(FIND("(",A2)))),B1,A2)
あとはコピーかオートフィル
sage忘れた…
>>716 単純にオートフィルタでオプション-条件"("を含まないでフィルタ後好きな場所にコピぺじゃダメなの?
>716 VBA可と書いてあるので・・・ Sub sample1() 複写元 = Cells(1, 1).Value For tate = 2 To 300 ←300は処理対象の最終行位置を指定のこと カレントセル = Cells(tate, 1).Value If (カレントセル = "" Or カレントセル Like "(*" Or カレントセル Like "(*") Then Cells(tate, 1).Value = 複写元 Else 複写元 = Cells(tate, 1).Value End If Next tate End Sub カッコは全角、半角混在でもいいです。ただし、前に空白がないこと。
>>716 ただ単に並び替えればそれぞれでかたまってくれる気が。。。
723 :
716 :2008/12/01(月) 23:56:03
>721 「複写元」と「カレントセル」には何を入れればいいんですか? VBA初心者なので詳しくお願いします。
>688 E3 =1000-C3 E4 =1000-C4+E3 以下フィルドラッグ 表示形式 ユーザー定義 +#,##0;-#,##0
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 【5 検索キーワード 】 Excel 並べ替え テキスト A 1 1-1 2 1-2 3 1-3 4 5 2-1 6 2-2 7 2-3 8 9 3-1 10 3-2 11 3-3 12 と続いていくデータ(全て10〜30字程度の文章)を、 A B C 1 1-1 1-2 1-3 2 2-1 2-2 2-3 3 3-1 3-2 3-3 4 という風に並べ替えたいのですが、どうすればいいでしょうか。 初心者丸出しで申し訳ありませんが、よろしくお願いします。
>>725 先に聞くけど三行に一行、空白行があるのは間違いない?
>>726 3つワンセットのデータで1000ちょっとくらいです
>>727 はい。よろしくお願いします。
>>725 B1に
=OFFSET($A$1,(ROW()-1)*4+COLUMN()-2,0)
って入れてB1〜D1000までコピペすると並び換えたデータがB〜D列にできるから
それを好きなとこに移動
>>725 B1=INDIRECT("r"&((ROW()-1)*4+1) + COLUMN()-2&"c1",0)
後はCD列と下にオートフィル
最後に範囲選択して値にしてコピペ
別シート使ったほうが良かったな。まぁいいか
かぶった・・さすがに式は似るなw
732 :
721 :2008/12/02(火) 18:09:00
>723 「何を入れれば」って、プログラムが扱う変数なので、別の名前でもかまいません。 ←300は処理対象の最終行位置を指定のこと の部分を除いてそのまま入れたら 動くはずです。(当方もWindowsXP,Excel2003です)
今PC教室でExcel習ってます 数学が苦手で「○○を出しなさい」と言われても、どこを指定したらいいか分からず、とまどってばかりです こんな私でもMOSの資格取れますか?
「○○を出しなさい」がサッパリ分からないけど資格なんて要は反復練習だろ その前に本当にMOSが必要かどうか考えたほうがいい。会社で言われてるならともかく個人でとってもそんなにいいもんじゃないよ
>数学が苦手で「○○を出しなさい」と言われても、どこを指定したらいいか分からず 数学というより、そこは国語の問題じゃないかな。 それはともかく、ちゃんと対策やれば取れる資格なので心配はいらないと思うよ。
>>734 ほとんどの知識は丸暗記すればいいだけだから、
とにかく実際に本を見ながら書いてあるとおりに操作してみること。
一度でもやればだいたいの感覚はつかめるはず。
自宅にパソコンとExcelがないとちょっと不利かもしれない。
>>734 MOSの資格自体は糞の役にもたたない。
ただ勉強するのはいいことだ。
>>724 B1に
=INDEX($A:$A,(ROW()-1)*4+COLUMN()-1)
740 :
名無しさん@そうだ選挙にいこう :2008/12/02(火) 22:45:59
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 お世話になります。 Excelのファイル内で利用されているすべての背景色を確認することは可能でしょうか? VBAでA1セル〜255列65536行までのすべてのセルについて、 Interior.Colorの値を一つ一つすべてのシートについて検索して、 初めて見つけた色を順々に書き出していくくらいしか方法無いでしょうか? (もしくはCtrl+Endで移動する先の(やり方わすれた。本読む)セルの行・列番号を読んでから、A1〜そこまでとか) 検索機能なんかで簡単に確認する方法は無いでしょうか? 御存知の方Helpお願いします。 (最終的に、ある特定の色一色を残して、それ以外の色のセル背景色をすべて無色(xlNone)にしたいです。) (その確認方法として、記述の情報を得たいです。)
>>740 ループで1個ずつ調べるしか方法はない。
あと条件付き書式で付けられた色はInterior.Colorでは取得できないから注意な、
みなさん、レス有難うございます 事務職を希望していて、MOSは有利だと思ったんですが・・・ そうでもないのですか;; 有利な資格と言ったら、Excel表計算技能認定試験とかですか? せっかくPC教室通ってるんで何か受けたいのですが、何がいいと思いますか? 教えていただけたらありがたいです
743 :
734 :2008/12/02(火) 23:00:26
>>742 別に誰も有利じゃないなんて言ってない。
Excel習ってて、現状MOSを受けるのに不安なレベルだっていうなら
まずはそのMOS取れるようになればいいんじゃないの?
上を受けるならMOS取ってからでいいと思う。
>>742 MOSを取得しているから採用、という企業は無きに等しい
ただ、働き始めて、様々なデータ処理などを頼まれたときに、
MOSで学ぶ浅くて広い知識を持っていると何かと便利だし、重宝がられる。
746 :
716 :2008/12/03(水) 02:47:17
>732 できました。ありがとうございます。
俺なんか趣味半分で独学でExcel VBAに手を出したせいで、 関数の類はほぼさっぱりだ vlookupですらヘルプ見ないと使えんぜ
バカ自慢は他所でお願いします。
test
別にMOSなんて取らなくてももっと簡単な試験でもいいと思うよ
MOSのスペシャリストレベルはこの種の試験では、1,2を争うほど簡単だぜ 「スペシャリスト」なんて名前だけは凄そうだが、これは客(受験者)を集める為の宣伝効果を狙った物で スペシャリストが初級レベル(合格率8割、合格して当たり前)、 エキスパートが中級レベル(合格率5割、合格すればそこそこデキるかな)という感じ
752 :
名無しさん@そうだ選挙にいこう :2008/12/03(水) 11:18:25
【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2003 【3 VBAが使えるか】 はい 【4 VBAでの回答の可否】否 【5 検索キーワード】 チェックボックス オートシェイプを上 最前面 お世話さまです。よろしくお願いいたします。 Excelでシート上にコンボボックスやチェックボックス、コントロールツールボックスの テキストボックス等を配置してあります。 コントロール類の上にオートシェイプの雲形噴出し等を重ねたいのですが、オートシェイプを 最前面に設定しても、どうしてもコントロール類の下になってしまいます。 (デザインモード中は、オートシェイプが上に重なっているのですが、デザインモードを オフにするとダメです) デザインモードをオフにしても、オートシェイプがコントロール類の上に重なるように したいのですが、何か方法はありますでしょうか?
>>752 試してみたけどちゃんとオートシェイプが上にも下にもできた
もうちょっと再現の手順をkwsk
754 :
752 :2008/12/03(水) 11:50:04
お返事ありがとうございます。 引き継いだ資料だったので、初回作成者ご本人に確認したところ・・・ コントロールのテキストボックスの上に通常のテキストボックスを重ね、グループ化して あるそうです。(その上に雲形吹き出しを重ねて描画しました) 別のBookにコントロールのテキストボックスを配置し、上に雲形噴出しを重ねたところ 753さんのおっしゃるとおり、問題なく重ねられました。 コントロールのテキストボックスとオートシェイプのテキストボックスをグループ化したことが 招いた現象なのかと思い、グループ化を解除してから雲形噴出しを最前面設定してみたのですが、 やはり雲形吹き出しは下になったままでした。 ちなみに、重なっているオートシェイプのテキストボックスを削除してから雲形吹き出しを最前面に 設定してもダメでした。
まさかと思うけど透明になってない?
756 :
752 :2008/12/03(水) 11:59:07
755さん 雲形噴出しは白で塗りつぶしてあります。(透明:0%) コントロールのテキストボックスは、BackColorを&H00C0C0FF&に設定してあります。
実はコントロールじゃなくてフォームだったとか
横レスしてみる
>>754 >コントロールのテキストボックスの上に通常のテキストボックスを
この2つの区別は何なのか聞きたいところだ
通常=オートシェイプ?
もしこうならオートシェイプの中にテキストボックスなんてものはなかったと思うのだが・・・
>>757 グループ化云々言ってるからそれはないんじゃないかと・・・
759 :
752 :2008/12/03(水) 12:14:01
757さん 初回作成者ご本人に確認したところ、シート上に配置したコントロールは 「コントロールツールボックス」のものしか使っていないとのことです。 新規作成のBookでは出来るので、出来ないファイルはシート上にある[何か]が 悪さしてるんでしょうね・・。
オートシェイプに「テキストの追加」のことを言っているのではないかと
761 :
名無しさん@そうだ選挙にいこう :2008/12/03(水) 12:18:43
(リロードする前に書き込んでしまいました。すみません) 758さん、760さん オートシェイプのテキストボックスと書いてしまったのは誤りです。 正しくは「図形描画ツールバー」にあるテキストボックスです。 「コントロールツールボックスのテキストボックス」に「図形描画ツールバーの中の テキストボックス」を重ねてあります。
(;゚д゚)ァ........
MOSはさておきMVPとやらはもっとひどいな。
>>761 オートシェイプを右クリックして「テキストの追加」を選ぶと、図形がテキストボックスに変換される。
この方法だと長方形以外の形状のテキストボックスを簡単に作ることが出来る。
つまりオートシェイプとテキストボックスは同じ物ってこと。
テキストボックスのプロパティや重なり具合を変えたいときは、図形の周囲の斜線の部分を右クリックだよ。
間違ってない?
横から質問済みません。 テキストの追加でテキストボックスになったオートシェイプを 単なるテキスト無しのオー手シェイプに戻すのはどうやるんですか?
766 :
752 :2008/12/03(水) 13:23:38
764さん 最前面に持ってきたいのは、雲形噴出しです。 [コントロールツールボックスのテキストボックス]の上に[図形描画のテキストボックス]が重ねてあって なおかつグループ化されており、このグループ化の上に雲形噴出しを書き、雲形吹き出しを選択して ハンドルが表示された状態で右クリックして表示される[順序]の[最前面]を選択したのですが、 操作方法が間違ってしますか? ちなみに「グループ化されたコントロールボックスのテキストボックスと図形描画の図形ボックス」を選択して右クリックして [順序]−[最背面]とやっても、やはり雲形噴出しが最背面に表示されます。
再現できん コントロールとオートシェイプをグループ化、さらにオートシェイプを重ねてみたが順序は自由に変更できる もしかして順序を強制的に変更するようなマクロとか入ってたりしない?
764でなないけど 1.テキストボックスを出す 2.オートシェイプの四角を出して重てテキストの追加をする([図形描画のテキストボックス]?) 3.1.と2.をグループ化 4.「噴出し」を出して重ねる の手順で再現できないんだが・・・ SS撮ってその部分だけ上げてみてくれないか?
769 :
752 :2008/12/03(水) 13:48:51
768さん、皆さん ・・・すみません! コントロールツールボックスのテキストボックスだと思っていたものが 実は「リストボックス」だったことに気づきました。 リストボックス上に雲形吹き出しを書くだけで再現とれました。 (どうやっても雲形噴出しが下になってしまいます)
【1 OSの種類 .】 WindowsXP及びVista 【2 Excelのバージョン 】 Excel2007 【3 VBAが使えるか .】 はい(勉強中です) 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 軸ラベル プロットエリア 現行のExcel2002からExcel2007への移行作業中です。 ■発生した問題 軸ラベルとプロットエリアが重なってしまう。 Worksheets("グラフ").ChartObjects(1).Chart.ChartWizard _ Source:=Range(Cells(変数,変数), Cells(変数,変数)), _ Gallery:=xlXYScatter, PlotBy:=xlColumns, _ CategoryLabels:=1, SeriesLabels:=1, HasLegend:=False, _ CategoryTitle:="ラベル1", ValueTitle:="ラベル2", ExtraTitle:="" Excel2002では以上の設定で問題なかったのですが Excel2007で動かしたとき軸ラベルとプロットエリアが重なってしまいます。 見た目では軸ラベルを設定してもプロットエリアが縮小していないという感じです。 つづく
771 :
名無しさん@そうだ選挙にいこう :2008/12/03(水) 14:04:42
【1 OSの種類 .】 Windows xp sp2 【2 Excelのバージョン 】 Excel 2000 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 例えば、通常セルの表記が一番左上なら 「A1」 だと思うのですが たまに列の表記がABCDEF・・・ではなく123456・・・となってしまい 一番左上の表記が「R1C1」となってしまうのですが、元に戻す方法は 無いでしょうか?宜しくお願い致します。
つづき ActiveChart.PlotArea.Width = ActiveChart.PlotArea.Width - 40 ActiveChart.PlotArea.Height = ActiveChart.PlotArea.Height - 40 ActiveChart.PlotArea.Top = 20 ActiveChart.PlotArea.Top = 20 という指定でプロットエリアを動かせば重ならないようにはできるのですが できれば数値の直打ちではなく自動で制御できればと考えています。 なにか良い方法はないでしょうか。
>>771 [ツール]→[オプション]→[全般]→[R1C1参照形式を使用する]のチェックをはずす
2003での操作だけど同じかな?
774 :
771 :2008/12/03(水) 14:18:58
776 :
752 :2008/12/03(水) 15:58:21
775さん 調べてくださってありがとうございます。 (リンク先は見られなかったです。汗) 結構複雑な資料だったので作り直すのを躊躇していたのですが・・・。 制限や仕様なら諦めも付くので、おとなしく資料を作り直すことにします。 皆さん、色々とありがとうございました。
778 :
770 :2008/12/03(水) 16:48:13
自己解決できたようなので下げます。 長文失礼しました。
779 :
682 :2008/12/03(水) 16:52:51
質問のやりとりではないのですが、条件付書式の件でMSに問い合わせをして、
回答を得られたので、後検証の結果として書かせていただきます
>>696 の条件で操作を行い発生する現象(ルールの増殖)については、
同様の事例が報告されており、MSは2007特有の不具合として認識、
直接的な問題解決方法は今のところ存在しないとのことです
旧バージョンでは存在しない不具合とのことですので、
当座は2007での加工編集を禁止して対応することにしました
以上、同様の現象にあわれた方の参考になれば幸いです
てst
よろしくお願いします 【1 OSの種類】 WindowsXP 【2 Excelのバージョン】 Excel2000 【3 VBAが使えるか】 ほとんど使えない 【4 VBAでの回答の可否】 可 単語帳を作ってるのですが、検索マクロで質問です。 現在、エクセルの通常の検索を「マクロの記録」で記録したものを書き換え使ってます。 以下の通りです。A1セルに入力した文字列を参照し、検索します。 Sub 文字列の検索() Cells.Find(What:=Range("A1"), After:=ActiveCell, LookIn:=xlValues, LookAt _ :=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:= _ False).Activate End Sub これを次のことができるように書き換えたいのですが。 1)普通に辞書を引くように「頭一致」で検索したい。(今の状態だと、単語中に同じ文字列があると全て拾ってしまう) 2)A列だけ検索対象にしたい 3)一致する文字が無かったら、A1に入力した文字を末尾から1文字削除し再検索、を繰り返し一番近い単語を検索したい。 3番目は文字列操作しか方法ないですよね?ループのさせ方も良く分かりません。 1番と2番は検索オプションを変更するだけで出来ませんか? 初歩的すぎてすみません。 時間を掛けて一から勉強すればいいんでしょうけど、今そんなに余裕が無いので。。。 よろしくお願いします。
>>781 余裕ないのに2chで聞くのかよw
まぁ、行き当たりばったりで組んでみたけどな
Sub 文字列の検索()
Dim rng As Range
ScreenUpdating = False
'アクティブセルを検索範囲末尾に移動
If Intersect(Range("A2:A65336"), ActiveCell) Is Nothing Then
Range("A65336").Activate
End If
Do
'検索
Set rng = Range(Cells(2, 1), Cells(65536, 1)).Find(What:=Range("A1").Value & "*", After:=ActiveCell, _
LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If rng Is Nothing Then
'見つからなければ1文字削る
Range("A1").Value = Left(Range("A1").Value, Len(Range("A1").Value) - 1)
Else
Exit Do
End If
Loop While Len(Range("A1").Text) <> 0
rng.Select
ScreenUpdating = False
End Sub
>>781 A列だけを検索するには最初に
Columns("A:A").Select
と書く。
文字列の先頭だけに一致させるには普通は正規表現てのを使うんだけど、個人が手作業で作った単語帳なら
そんなにデータの量も多くないだろうし、その次の1文字ずつ削って再検索する処理のことまで考えると、
単純にForループで探していった方が手っ取り早いかもしれない。
正規表現はパソコン使う上で絶対に役に立つ知識だけど、余計な勉強してるヒマがないってのが悩ましいところ。
とりあえず参考ページだけ貼っとく。
ttp://officetanaka.net/excel/vba/tips/tips38.htm
785 :
782 :2008/12/04(木) 10:45:52
我ながら手抜き杉のミス多杉ワロタ とりあえず修正 Sub 文字列の検索() Dim rng As Range Application.ScreenUpdating = False 'アクティブセルを検索範囲末尾に移動 If Intersect(Range("A2:A65536"), ActiveCell) Is Nothing Then Range("A65536").Activate End If Do '検索 Set rng = Range(Cells(2, 1), Cells(65536, 1)).Find(What:=Range("A1").Value & "*", After:=ActiveCell, _ LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _ MatchCase:=False, SearchFormat:=False) If rng Is Nothing Then '見つからなければ1文字削る Range("A1").Value = Left(Range("A1").Value, Len(Range("A1").Value) - 1) Else rng.Select Exit Do End If Loop While Len(Range("A1").Text) >= 1 If rng Is Nothing Then Range("A1").Select End If Application.ScreenUpdating = True End Sub
786 :
781 :2008/12/04(木) 11:06:47
うわっ!こんな短時間の間にありがとうございます! 今夜、家に帰って実行させていただきます。ありがとうございました! とりあえずお礼まで。
>>781 Dim strSearchWord As String, objMatchCell As Range, objSearchRange As Range, i As Long
strSearchWord = Range("A1").Value ' 検索文字
Set objSearchRange = Range(Cells(2, 1), Cells(Cells.Rows.Count, 1).End(xlUp)) ' 検索範囲
If Intersect(objSearchRange, ActiveCell) Is Nothing Then objSearchRange.Cells(1).Activate
For i = Len(strSearchWord) To 1 Step -1
Set objMatchCell = objSearchRange.Find(What:=Left(strSearchWord, i) & "*", After:=ActiveCell, LookAt:=xlWhole)
If Not objMatchCell Is Nothing Then
objMatchCell.Activate
Exit For
End If
Next i
Findメソッドの他のオプションは必要に応じて追加して
> A1に入力した文字を末尾から1文字削除し再検索
が、A1の値を直接削除したいのか、削除した文字で検索するだけでA1の値は保持したいのか不明瞭なので
一応保持するようにしたが、A1の値自体も削除したい場合は
objMatchCell.Activateの上か下にRange("A1").Value = Left(strSearchWord, i)を追加
因みに
>>785 だと該当無しの場合はA1が空になっちゃうな
短時間の間 が気になった
789 :
782 :2008/12/04(木) 11:30:05
>>787 A1の扱いについては確かに迷った
消しとけばどこまで削って一致したか分かるからとりあえず消した
あと
初回実行時にobjSearchRange.Cells(1).Activate
の後After:=ActiveCellで検索すると先頭(A2)と一致する場合に
その次のセルを探しに行ってしまうので末尾にセットした
>>785 Exit Doが気持ち悪い
>>787 Exit Forが気持ち悪い
途中で終わる可能性があるループにForは使うな(ただしFor Eachは除く)
って先輩にさんざん言われた
>>789 この場合のRange.ValueとRange.Textの使い分けをVBA勉強中の俺にkwsk教えてくれ
792 :
782 :2008/12/04(木) 11:44:31
>>790 じゃあ気持ち悪くないように改造してここに貼ってねw
>>791 最初に書いた通り行き当たりばったりの手抜きでそんなこと考えてない
Rangeの指定にCells(〜と"A2〜"が混ざってる時点で分かるだろ?
ちなみに自分もまだまだ勉強中の身だw
こうかな? Loop While (Range("A1") > "") And (rng Is Nothing) ループから抜ける条件は一ヶ所にまとめて書かないとバグの元だって教えられた
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 検索ワードが思いつきませんでした
↓キャプ画です
ttp://www.uploda.org/uporg1831140.jpg このような感じで、最高気温・最低気温の半年分をまとめたデータがあり(画像は4日分ですが)
最高気温・最低気温ごとに各半年分の折れ線グラフを作ろうとしています
データ選択時に一気にドラッグができないので(最高・最低気温がごっちゃになる)、
Ctrlキーで一づつ気温セルをシコシコ選択してグラフを作ろうと思ったのですが
「データが複雑すぎる?」みたいな表示で、データ選択がうまくいきません。
どなたかご助言お願い致します。
>>794 最高気温と最低気温が同じ表の同じ行にあるからそうなる
それぞれ行を分けるか表を分離するべき
INDIRECTとROWやCOLUMNを組み合わせてやればいいと思う
797 :
796 :2008/12/04(木) 12:43:28
最高と最低が逆だったわ。コピペする時に間違えた。まあどうでもいいけど。
WINDOWS EXECL 2003なんですが VSBを使わずに選択範囲だけを再計算ってできませんか?
出来ません
VSBを知らないので分かりません
802 :
名無しさん@そうだ選挙にいこう :2008/12/04(木) 16:58:40
A列の最初の空白セルに飛ぶようなキー操作やボタンなどを作るにはどうしたらいいでしょうか? 例をあげますと、A列〜C列に上から順にレコードを入力してゆきます。 D,E列にはその計算結果が表示されるような式が入っており、これは3000行目まで埋まっています。 ここで何かのキー操作や、ボタンを押す事で、A列の最初の空白行に飛ぶような操作をしたいと考えています。 よろしくお願いします。 【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい(リファレンスを参照しながら見よう見真似で) 【4 VBAでの回答の可否】 コピペ修正できるようなものでしたらお願いします。 【5 検索キーワード 】 エクセル 空白 移動 マクロ
>>803 で、できました・・・ありがとうございました。
805 :
781 :2008/12/04(木) 17:44:29
午前中、単語帳の検索マクロでお世話になったものです。
皆さん、どうもありがとうございました。
A1セルを保持したほうが都合が良かったので
>>787 さんのプログラムを使わせていただきました。
バッチリです!すごく使い勝手が良くなりました。
自分で今から勉強始めてたら1年かかっても出来なかったでしょう。助かりました。
皆さんすばらしいです!
>>799 エグゼクルとかブイエスビーって何ですか?
どっちにしろ部分的な再計算は無理じゃね? やるとしたら選択範囲を別ブックにコピーするぐらいしか思い付かんわ それにしたって依存関係とかチェックして計算に必要なセルを洗い出すのは相当大変だと思うけど
809 :
名無しさん@そうだ選挙にいこう :2008/12/04(木) 20:37:43
>>799 範囲内のセルと範囲外のセルが参照しあってたらどうするの
>「選択範囲だけを再計算」
この考え方自体が破綻してるじゃん
名前を入力すると、 ・携帯の電話番号があればそれ ・なければ自宅の電話番号 が自動的に出てくるようにしたいのですが、関数をどのように書けばよいのでしょうか?
811 :
名無しさん@そうだ選挙にいこう :2008/12/04(木) 20:41:12
>>810 たとえばA1に携帯、A2に自宅なら
IF(ISBLANK(A1),A2,A1)
これとVLOOKUPを組み合わせる
ありがとうございます もう一つ聞きたいのですが、MATCH関数でいくつかの単語を検索し、 その結果帰ってきた値の中の最小値をMIN関数で求めたいのですが、 検索した単語が存在しない場合、エラーが出てしまい、 MIN関数内にエラーが含まれてしまい、正しく最小値を求められません。 エラーを無視して返ってきた値の中での最小値を求めることは出来ないでしょうか?
814 :
名無しさん@そうだ選挙にいこう :2008/12/04(木) 22:08:22
初めまして、仕事で行き詰まってしまい是非ご相談をさせて頂きたく書き込みさせていただきます。 【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 excel 記号 囲まれた 返す 計算式で、同じ記号に囲まれた数字を返すというものはありますでしょうか? 例 1-1-1 という文字列を最終的には 01-01-01 という形式にしたく、 はじめも”1”についてはIFを組み合わせて変換することが出来ました。 最後も同じように出来る予定なのですが、中の数字だけ計算式が浮かばなくて・・・ すべてが一桁の数字ではなく、 1-15-1や1-15-15、10-15-1、10-15-15のパターンがあるためうまく出来ません。 何かよい方法はないでしょうか。 何卒宜しくお願いいたします。
=TEXT(LEFT(A1,(FIND("-",A1,1)-1)),"00")&"-"&TEXT(MID(A1,FIND("-",A1,1)+1,(FIND("-",A1,FIND("-",A1,1)+1)-FIND("-",A1,1)-1)),"00")&"-"&TEXT(RIGHT(A1,(LEN(A1)-FIND("-",A1,FIND("-",A1,1)+1))),"00") 長!!
>>814 A1 = 1-1-1
B1 =SUBSTITUTE(A1,"-1-","-01-")
真ん中だけだけど…こんなかんじ?
シフト表から各スタッフの初勤務日を計算で出すことは出来ますか? また、逆にその日(たとえば1月1日)に働くスタッフを列挙するというのはどうでしょうか?
>>814 元のデータがA1に入ってたとき、
=SUBSTITUTE(MID(A1,3,LEN(A1)-4),"-","")
>>814 =TEXT(LEFT(SUBSTITUTE(A1,"-"," "),2),"00-")
&TEXT(MID(SUBSTITUTE(A1,"-"," "),4,2),"00")
&TEXT(RIGHT(SUBSTITUTE(A1,"-"," "),2),"-00")
俺も長w
820 :
818 :2008/12/04(木) 22:57:41
補足すると、最初の数字は =SUBSTITUTE(LEFT(A1,2),"-","") 最後(3番目)の数字は =SUBSTITUTE(RIGHT(A1,2),"-","") で取り出せる。
>>819 それだと「1-2-3」が「01-03-03」になる。
正解
=TEXT(SUBSTITUTE(LEFT(A1,2),"-",""),"00-")
&TEXT(SUBSTITUTE(MID(A1,3,LEN(A1)-4),"-",""),"00-")
&TEXT(SUBSTITUTE(RIGHT(A1,2),"-",""),"00")
822 :
819 :2008/12/04(木) 23:04:31
>814 ミスったぜ! =TEXT(LEFT(SUBSTITUTE(A1,"-"," "),2),"00-") &TEXT(MID(SUBSTITUTE(A1,"-"," "),4,3),"00") &TEXT(RIGHT(SUBSTITUTE(A1,"-"," "),2),"-00")
823 :
819 :2008/12/04(木) 23:06:38
>>822 アウ^^;
ダブルコーテーションに囲まれたスペースは真ん中だけ2個であとは1個
>>821 指摘d
合わせてみた。今んとここれが最短かな =TEXT(LEFT(A1,FIND("-",A1)-1),"00-") &TEXT(MID(SUBSTITUTE(A1,"-"," "),4,3),"00") &TEXT(SUBSTITUTE(RIGHT(A1,2),"-",""),"-00")
>>814 さらに改良。
=TEXT(LEFT(A1,FIND("-",A1)-1),"00-")
&TEXT(MID(SUBSTITUTE(A1,"-"," "),4,3),"00")
&TEXT(MID(A1,FIND("-",A1,4)+1,2),"-00")
なんかもっと違う方法がありそうなんだけど…
>>824 日にち 日にち ...
名前 シフト内容(アルファベット)
名前 シフト内容(アルファベット)
ってな感じなんですが
828 :
名無しさん@そうだ選挙にいこう :2008/12/05(金) 00:21:24
814です。 うわ!!!たっくさんのご回答感激です!!! やはりダイレクトに取り出す関数はないんですね。 FINDか何かで”-*-”で試して見たかったのですが、 ワイルドカード禁止で挫折しておりました。 地道に出すにも始めの数字の桁数が一致しないのでどうしたものかと思っていたのですが、 SUBSTITUTEを活用するのですね!! お恥かしながら家パソにはエクセルがないので検算できないので 脳内がごちゃごちゃ数字だらけになっておりますw でも理論はわかりました!! 明日会社で試します!! 本当に感激です!! ありがとうございました!!
>>827 空いてる行に「データがあったら左のセルの値に1を足す」という式を書いて
LOOKUPで1の入ったセルを見付ければいい。
列挙もできると思うけど、シフト表がどういう形式かそれだけではよくわからないので
なんとも言えない。
A1セルに文字が入力されている場合に B1セルでなんらかの関数を使って A1セルに入力された文字を消すことってできますか? 見えなくするのではなくてA1セルでDelキーを押したような状態にさせたいのです
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】いいえ 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 シート 名前変更 二つのブックがあって、一方の複数のシートをもう片方のブックにコピーした際に、 自動的に指定した名前でコピー又は変更することはできますか? ブック1 シート名「12月1日」 「12月2日」 「12月3日」 コピー → ブック2 シート「田中」 「鈴木」 「佐藤」
>>831 つ[マクロの記録]
名前を指定してコピーしたらどこかに「田中」という文字列が現れる
そこにrange("a1").valueなどを入れればA1セルの内容が反映される
他にはコマンドボタン・inputboxなんかと組み合わせてみると良いかもしれない
>>830 VBA使えば出来る。関数だけじゃ無理。
WinXPでExcel2000ですが、 20列×4500行、データ量1800kくらいのワークシートがあるんですけど、 開くのに12秒もかかってカッタルイっす。 データを全部読み込んでるんですよね?きっと。 将来的に今の倍くらいのデータが入る予定なのですが、 素早く立ち上がる工夫とかあるのでしょうか?
>834 excelをやめる。 excelは表計算ソフトだ。DBぢゃネーヨ。
>>834 試しに50列×5000行、5MBぐらいある適当なデータを作って試してみたが、5秒もかからんかったぞ。
とりあえず計算を手動にしてみて、それでも遅いならもっと速いパソコンに買い換える、だな。
あと、まさかと思うけどファイルがUSBメモリに入ってたりしないよな?
>>835 端的に言えばそうだなwでもエクセル便利なんだよ。
アクセスも持ってるけど、計算するにはクエリー組まなきゃならんし、
データと結果を表示させるにはフォームを組まなきゃならんし、
エクセルは直感的に一つの画面で出来るからなあ。
習慣的にエクセルで済ませちゃってるw
>>834 そんなに速いの?何が違うんだろ?
俺のCPUはペンDのクロック3Gくらいだったと思うけど。
計算も難しいことほとんどしてないし。文字データが多いけど。
839 :
836 :2008/12/05(金) 12:06:31
>>837 うちは1.1GHzのノートパソコンだよ。
何か常駐ソフトが足を引っぱってるとか、メモリが足りてないんじゃない?
データがただの数値か計算式かでかわってくるだろ
841 :
834 :2008/12/05(金) 12:21:45
>>839 常駐はノートンインターネットセキュリティだけ。
RAMは2G。ファイルはHDDのCドライブのマイドキュメントにあるんだけど・・・
あとは内容だなあ・・・
オートフィルタも入れてないし・・・
何が悪いんだ?
>>841 とりあえずツール→オプション→計算方法→手動にしてみ?
書式の指定が多すぎるとかじゃね?
フォントを何種類も使ってると重くなる
845 :
834 :2008/12/05(金) 12:49:04
>>842 してみたけど、変わらなかった
>>843 確かに多いかも。でも列単位だし、違っても、
セルを折り返して全部表示するかどうか、入力規制とかフォントサイズくらい。
>>844 フォントは2種類使ってる
計算は部分的なオートサムくらいで、試しに削除してみたけど変わらなかった。
>>845 使ってないシートを削除する、マクロを止める。
Ctrl+Endでとんでもないところに飛んだ場合、どこかに余計なデータが入ってる。
あとは、データの追加と削除を何度もやってると重くなることがあるから、
シート全体を新規ブックにコピペしてみる。
847 :
834 :2008/12/05(金) 13:14:07
>>846 >あとは、データの追加と削除を何度もやってると重くなることがあるから、
>シート全体を新規ブックにコピペしてみる。
これのようでした。新しいブックにコピーしたら7秒になりました。
ありがとうございました。
HDDのデフラグみたいなツールはないんですかね?
ないです
>834 の内容を20列4500行にコピーして保存すると1352KBになった。 これを開こうとすると12秒どころか、何時まで経っても開かない。 強制終了したが、こういう使い方は止めようと思った。(pen4 2.4G)
セルに20バイト程度の文字列が入ってるだけで書式も数式も一切使ってない 単なる一覧表なら10000行あっても1秒もかからん。一瞬で開くぞ
>>829 名前 A B D ...
名前 C A...
てな感じなんですが・・・
ちなみにアルファベットはシフトの種類です
これだけでは分からないでしょうか?
>>851 B列から日付が始まってる
B2からシフトが入ってる
前提で最初の出勤日は
=MIN(IF(B2:G2="","",B$1:G$1))
(B〜Gで6日分)
で配列数式にして書式設定を日付にすれば出せる
出勤者の列挙は出し方が分からないと回答できない
853 :
名無しさん@そうだ選挙にいこう :2008/12/05(金) 18:19:28
>>834 数式の組み方が下手くそなんだよw
作 り な お せ ! !
全ての数式を書きだしてくれたら検討してやるぞ。
うぷろだはだめだぜ!
854 :
名無しさん@そうだ選挙にいこう :2008/12/05(金) 18:20:31
なんだ、解決してたかw
エクセルのバグ発見したんだけど マイクロソフトに報告するとお小遣いとかもらえるの?
もらえないし、第一発見者でもないだろうし
>>830 完全消去はムリだけど…
A1 =IF(B1<>"","","●●")
●●…本来A1に入れたい文字
そうかもらえないか 第一発見者かどうかわからんが 誰か試してくれんか? とりあえず A1に =IF(A4=0.01,"○","×") んで A4に =ABS(A2-A3) って入れてくれ
860 :
858 :2008/12/05(金) 23:42:43
そして A2に 0.25 A3に 0.24 を入れてみてくれどうなる? ちなみにバージョンは2000
>>860 それExcelと関係ない。少数以下の計算に誤差が出るのはすべてのパソコンに共通の問題。
このスレだけでも2回目だよ。
2003では謎の誤差丸め機能により○になるよ とりあえずオプションの計算方法の表示桁数で計算するをチェックしてみれば
865 :
858 :2008/12/06(土) 00:40:30
0.23 と 0.24 だった。これで×になる 他の小数点の数字でも試してみたけど確かに駄目な数字あるな。
868 :
858 :2008/12/06(土) 00:42:33
>>864 のアドバイス試してみたけど駄目だった
困ったな・・・
>>871 10進法の計算を2進法で動いているPCで計算するからですか?
回避策はないのですか?
ド素人な質問なのですがよろしくお願いします シート全体を再計算したくなくて vbaというものを使おうと思ったのですがどうにも初挑戦なもので・・・ とりあえず「セルを再計算して値にして隣のセルに移る」というところまでやってみようと思い [F2を押す→TABで隣に移る(ここで再計算されるはず)→シフトTABで戻ってくる→ →コピーしてそのまま値で貼り付け→右に移る] こんな感じにできればいいかなと思い Application.SendKeys ("{F2}") Application.SendKeys ("{TAB}") Application.SendKeys ("+{TAB}") Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues Application.CutCopyMode = False ActiveCell.Offset(0, 1).Select とやってみたのですが結果はセルが空欄になって隣に移動してしまいます 何故そうなるか と どこを直すべきなのか を教えて頂けないでしょうか
>>874 ツール⇒オプション⇒計算方法⇒手動では?
Sub Macro1() With Application .Calculation = xlManual .MaxChange = 0.001 End With ActiveWorkbook.PrecisionAsDisplayed = False End Sub
>>858 先輩に聞いたところでは、2進法の誤差問題は
パソコン初期の80年代には、すでにみんな知ってて
95が出た頃にはROUNDで有効桁の処理をするのが、
当たり前だったらしい。
どの年代でこの情報が途切れたんだろう・・・・
878 :
872 :2008/12/06(土) 11:02:10
>>873 よおーーーーくわかりました。
ありがとうございます。w
この二者の結果が異なるようになったころだっけ? =1-1/3-1/3-1/3 =(1-1/3-1/3-1/3)
80年代に個人でパソコンを触ってたようなんは筋金入りのオタクばっかりだ 今は普及しすぎて基本原理を知らない人が増えたからだと思われる エクセル触ってるだけの人に「2進法で表せる数じゃないと…」とか言っても逆にアホみたいだ
881 :
ピエロ :2008/12/06(土) 11:39:38
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel** 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 エクセル 掛算 関数 一定値掛けるパーセント ある一定値に対して何通りかのパーセント掛けた値を出したいのですが、 例) 10% 15% 20% 金額 \1500 \1650 \1725 \1800 上記のような表を関数で作るにはどうしたらよろしいでしょうか? アドバイスいただけないでしょうか?
A1*10%
>>881 1行目に書式設定 パーセンテージ
B1=10 C1=15 D1=20
2行目に書式設定 ユーザー定義 \0
A2=1500 B2=$A$2*(B$1+1)
B2をコピーしC2,D2にコピー
というのをやりたいの?
×C2,D2にコピー ○C2,D2に貼り付け
885 :
ピエロ :2008/12/06(土) 12:24:43
>>875 いえシート全体を再計算させたくないので
それは既にやってあります
887 :
ピエロ :2008/12/06(土) 12:33:45
あ、いえ、これだとB2に対してのパーセント計算に なってしまうので違いました。 各パーセントを元の値(この場合1500)に掛けたいのです。 でB2で作った書式をC2,D2にコピーするだけで \1500×10% \1500×15% \1500×20%を出したいのです。
アドレスの相対指定と絶対指定を勉強するといいよ
889 :
ピエロ :2008/12/06(土) 12:57:11
>>888 なるほど
ありがとうございました。
調べてみます。
>>887 >>883 の式はA2に入れた1500に対してパーセンテージを掛けてるよ
もし元になる値1500を直接指定したいというなら
B2=$A$2*(B$1+1)の$A$2の部分を1500にして後の手順は一緒
パーセンテージも直接指定したいならさらにB$1の部分を10%にする
でもここまでしてしまうと表計算ソフト使う意味ないし
一部の値を変更したときに書き換えし忘れて間違えたりするから注意
891 :
名無しさん@そうだ選挙にいこう :2008/12/06(土) 14:35:15
XPPRO Excel2003 VBA分からん VBA困る 検索キーワード ソート? 例えば、上から順に、 A C B A A C って入力しものを昇順ソートかけたら、 A A A B C C こうならずに A B A A C C こんなふうになるんだけど、なんで?
ふりがな? ふりがなは付けてない。 1列ソート
>>891 漢字にはフリガナがあるからその順にソートされるんだよ
つーか何のデータをソートしてるのか書いてくれ
経理の科目をソートしてる 「経費」っていうのが飛び飛びになる
>>874 >>886 処理の順番の問題。SendKeysで再計算させるには、一旦マクロから抜けなきゃいけない。
そうしないと再計算する前のセルがコピペされてしまう。
Sub 再計算()
Set r = Selection '選択されたセルを覚えておく
SendKeys ("{F2}{ENTER}") '1セルだけ再計算
DoEvents '一時的にマクロから抜けて再計算の結果をワークシートに書き込む
r.Copy '結果を値としてコピペ
r.PasteSpecial Paste:=xlPasteValues
End Sub
Excel2000 vba勉強中 日付をボタンで前後出来て その日付の「20/12/6」から6日を純粋な数字の「6」として取り出したいのですが(コピー) day関数?で上手くいくかと思ったのですが1日から前日になると-1になってしまい上手くいきません どなたか教えてください、お願いします
>>897 日付がA1に入ってるとして
=DAY(A1)-1
だとマイナスになる。正解は日付に変換する「前」に引く
=DAY(A1-1)
>>895 Excelでは、表示されてないだけで内部に「ふりがな」のデータが必ず存在する。
キーボードから漢字変換、別の表からコピペなど、データの追加方法によってふりがなが変わってしまうので、
意図しない順番でソートされてしまうことがある。
修正するには列全体を選択して「経費」を「経費」に置換する。見た目は変わらないが、隠されたふりがなデータが一発で消去される。
他のデータもみんな置換しておくといい。
900 :
897 :2008/12/06(土) 15:21:48
>>898 解りました早速試します
有りがとうございます
>>895 見えてなくてもふりがなは漢字と同時に振られるんだよ。
オートコンプリート使ったりコピーしたりするとズレる事がある。
つーか、携帯だから打つの面倒なんだよ!
とりあえず並び替えのオプションでふりがなを使わないを選べ。
902 :
ソート :2008/12/06(土) 15:25:27
>>899 サンクス
理解した。
経費を経費に置換して直った。
が、
その後から新しく入力した「経費」が全てこれまでとは違う「経費」として認識している…
これまでの「経費」をコピペするしかないか
903 :
ソート :2008/12/06(土) 15:42:03
並べ替えは
>>901 で解決だが
オートフィルタがだめだな
やっぱコピペだな
サンクス
嘘だー! そんなはずはない。
スペースだ! スペースが入っているに違いない。
ふりがなはshift+alt+↑で表示できる phonetic関数でも見れる まぁ、コピペが一番手っ取り早いわな
てんぐじゃ! てんぐのしわざじゃ!
908 :
名無しさん@そうだ選挙にいこう :2008/12/06(土) 16:41:02
急ぎなのですみません、テンプレ使わないで聞いちゃいます。 A1のセルに2008/12/01と入力し、書式設定のaaaで曜日「月」を表示させたんですけど、 それをB1のセルにコピーし「月」と表示させたいのですが、値が2008/12/01としまいます。 値も「月」とするにはどうすればいいのでしょうか?
>>908 急いでいるから簡単にいうと、weekdayをつかうんだ
>>908 コピペじゃムリ
=TEXT(A1,"aaa")
911 :
名無しさん@そうだ選挙にいこう :2008/12/06(土) 17:49:43
>>896 ありがとうございます、がんばってみます!
>>874 selection.calculate
selection.value = selection.value
じゃダメなん?
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 可(そのコードを教えて頂ければ) おはようございます。日曜日です。 自分的にかなりまんぞくのいく表が完成したんですが、 それを別シートにコピーしようとしたら、列幅行幅がデフォルト値に戻って 台無しになってしまいます。 教えてください。 関数だけを除いてそのまま別シートへコピペする方法、できれば毎度のことなので 自動的(簡単)にする方法などありましたらお願いいたします。
915 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 07:20:26
「関数だけを除いて」って意味がよくわかんない
>>914 シートごと複製して、全体をコピー、値のみ貼り付けしたらどうよ?
vbaでなくても5秒もかからないだろうよ。
917 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 09:04:04
>>914 (例1)
┌─┬─┬
│■│A│ ←■をクリックするとシート全体が選択できるので
├─┼─┼ それをコピペすればセルサイズもコピーできる
│@│
(例2)
[Ctrl]キーを押しながらドラッグすると印刷設定も含めコピーできる
918 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 11:51:20
【1 OSの種類 .】 Windows xp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 一つのファイルの中にあるグラフだけを全て印刷するようなマクロを作りたいのですが、 どのようにすれば良いのでしょうか? お願いいたします。
919 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 12:07:44
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 散布図 マーカー 透明化 散布図のマーカーを透明化、もしくは画像をマーカーとして使用するにはどうしたらよろしいでしょうか?
920 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 12:37:23
>>918 たぶん For Each あたりでできる
921 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 12:53:39
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2002 【3 VBAが使えるか .】 いいえ 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 なんかマクロを扱うようになってから、 PERSONAL.XLSとかいうファイルが勝手に開くようになっのですが、これって何なのでしょうか? これを出てこないようにしたいのですが、どうすれば良いのでしょうか? よろしくお願い致します。
922 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 12:54:11
>>922 >【4 VBAでの回答の可否】 可
('A`)
ChartObjects と For Each でググれ
924 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 13:14:39
>>649 ,664
非常に返事が遅れてしまい申し訳ありません。
ActiveChart.HasTitle = True
ActiveChart.ChartTitle.Characters.Text = Range("A1")
というところなのですが、
For i = 4 To 8・・・
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:="=zero!R12C" & i
みたいにしたいのですが、なぜか=zero!R12C3といった名称がそのまま出力されてしまいます。
ActiveChart.SeriesCollection(1).Values = "=zero!R13C" & i & ":R1013C" & i
↓
ActiveChart.SeriesCollection(1).Values = "=R13C" & i & ":R1013C" & i
についてなのですが、何も書かないとエラーが出て全く実行してくれないのですが・・・
よろしくお願い致します。
926 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 13:39:53
Function Om(v, s) Om = Range(v.col & s) / res End Function vというセルの列から任意の行のセルの中身を取り出したいのですが なぜかうまくいきません。 どこの部分が間違っていますでしょうか? よろしくお願い致します。
927 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 13:45:50
【1 OSの種類 .】 Windows2000 【2 Excelのバージョン 】 Excel2000 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 Function rr(v) rr = average(Cells(v.row,(v.col-2)):Cells(v.row,(v.col+2))) End Function 選択されたセルの±2の間で平均をとるためのマクロなのですが、 なぜかエラーが出てきます。どこがまずいのでしょうか?
>>926-927 colってなんだよ?
resってなんだよ?
averageってなんだよ?
存在しないプロパティや関数を書けば、そりゃエラーにもなるだろ
Rangeオブジェクトの列を返すプロパティはcolではなくColumnで、
列名ではなく列番号(Aなら1、Cなら3)を返す
AverageはWorksheetFunctionにはあるがVBAにはないので
親オブジェクト無しでAverageと書けば未定義関数を呼んでることになる
つーか君、
【3 VBAが使えるか .】 いいえ
だろ?
まともに動かないコードなら、誰でも書けるんだよ
929 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 14:22:13
>923 Sub Macro2() For Each ChartObjects PrintOut Copies:=1, Collate:=True End Sub とでもするのでしょうか? 全く分かりません。 教えて下さい。
930 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 14:23:53
>>928 そうなんですか。ありがとうございます。
WorksheetFunctionをそのまま呼び出すことができる
記述ってないのでしょうか?
何卒よろしくお願い致します。
931 :
927 :2008/12/07(日) 14:28:42
Function rr(v) rr = WorksheetFunction.Average(Cells(v.Row, (v.collum - 2)), Cells(v.Row, (v.collum + 2))) End Function 今度はどこが間違えていますか?
932 :
931 :2008/12/07(日) 14:30:09
Function rr(v) rr = WorksheetFunction.Average(Cells(v.Row, (v.Column - 2)), Cells(v.Row, (v.Column + 2))) End Function 間違えました。お願いいたします。
933 :
924 :2008/12/07(日) 14:34:09
何卒よろしくお願い致します。
なにこの流れw
935 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 14:51:20
Function ss(v) ss = Cells(v.Row, v.Column) End Function ならうまくセルの中身を取り出せるのに Function ss(v) ss = Cells(v.Row, (v.Column - 2)) End Function だとうまくいかないのはなぜですか?
【1 OSの種類 .】 Windowsxp 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 はい 【4 VBAでの回答の可否】 可 【5 検索キーワード 】 一度実行したマクロをマクロの実行前に戻すことはできないのでしょうか? 普通にundoしようとしてもできないのですが・・・
無理です。仕様です
938 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 16:05:33
まじかよ!!!!!!! 冗談じゃねえよくそったれえええええええええ
939 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 16:08:19
バックアップとってなかったお前が糞ったらし。
undoできないのは確かに不便だな マクロを作るとき、失敗したらまたファイル呼び出さないといけない場合もあるし
941 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 16:28:15
EXCELに、英和辞典のサイトからの文をコピーして貼り付けたら その文が印刷されません、どうすればよいでしょうか?
保存しなければおk
>【3 VBAが使えるか .】 はい >【4 VBAでの回答の可否】 可 テンプレのこれは質問者のそれではなく、 回答者のものであると思う今日この頃 質問の内容云々ではなく質問の仕方が酷い もう冬休みなんだなぁ
944 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 17:15:13
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2007 【4 VBAでの回答の可否】 否 【5 検索キーワード 】 Excel2007 グラフ 範囲選択 順番 ・・・など グラフ作成の際の範囲選択の順番についての質問です。 集合縦棒グラフの作成で、選択範囲が商品名と金額だとします。(B5:B10とE5:E10など) 商品名と金額のセルは離れているので、 Ctrlキーを使って同時選択してからグラフの種類を選びますが、 先に金額を選択してから商品名を選択すると、作成結果がおかしくなります。 (横軸に商品名と金額が入る?) 商品名を選択後に金額を選択すると、横軸に商品名・縦軸に金額がきちんと入ります。 なぜこのような選択の順番がグラフの結果に影響するのでしょうか? 2003までは影響がなかったように思います。 よろしくお願いします。
945 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 17:19:19
VBAで i = i + 1 を i += 1 みたいに簡単に記述することができたと思うのですが、 どうするんでしたっけ? i += 1で合ってると思ったのですが、うまくいかないんですが・・・
946 :
914 :2008/12/07(日) 17:23:22
>>916 >>917 お答えありがとうございます。
わたしの質問伝わらないですね、これじゃ。
その表を他人に渡すので数式とか見られたくないんです。
もちろん保護するわけにもいきません。
要するに数式以外全てコピーしたいんです。(列幅行高さ含め)
コピーという方法以外でも数式だけを伏せてその表を他人に渡す良い方法が
あれば教えてください
947 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 17:29:20
>>945 最近のVBでは使えるけどVBAではたぶん使えなかったと思う
>>945 それCか何かだったと思う。VBAでは使えなかったはず
951 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 17:51:06
>>950 うおおおおおおおおお
そうなんですかああああああああ
952 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 18:03:32
ActiveChart.SeriesCollection(1).XValues = Range(Cells(1, 1), Cells(100, 1)) これってどこが間違えていますか? 何卒よろしくお願い致します。
953 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 18:04:04
>>952 Range(Cells(1, 1), Cells(100, 1))
955 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 18:24:45
>>954 どういうことですが、教えて下さい。
よろしくお願い致します。
>>935 v.Columnが2より小さかった
とか?
957 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 18:27:41
>>925 PERSONAL.XLSを消した状態でPERSONAL.XLSにあるマクロを使うことはできないのでしょうか?
マクロの一覧には出てくるのに、なぜか実行することができないのですが・・
>>955 何がやりたいのかわからないので適当に添削するとRange("A1:A100")
959 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 19:10:47
ずっと疑問なんですけど ピボットテーブルのピボットってどういう意味ですか?
960 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 19:12:00
961 :
947 :2008/12/07(日) 19:13:19
>>953 俺が使ってるのは VB2005 ってやつ。バリバリ使ってるよ。
962 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 19:22:10
SubをPrivate Subに変えるとマクロのところから選択できなくなるのですが、 これってどうやって使うものなのでしょうか?
このスレはExcelで困った人のためのものだ 思いつきを書き込むのは少しは控えろよ ここに書き込む暇があったら少しはググれカス
Javaなんかでも使えるね。 てかそこまで簡略化しなきゃならん状況も少ないと思う。
965 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 19:29:52
>>920 Sub 印刷()
For Each ChartObjects In Workbooks
PrintOut Copies:=1, Collate:=True
End Sub
これだとどこがまずいのですか?
なんか似たような質問をしつこく連投してるやつがいるな しかもググらないしヘルプも見ないという・・・
>>965 のことでしょ。もっと名指ししていいと思うよ言われるまで気づかないだろうし
>>970 SetSourceData はRangeオブジェクトを指定する必要があるから
Rangeオブジェクトでググれ
973 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 20:32:49
例えば Range("a1:a10"), を i=1 To 10 でa,b,c,d・・・ と連番にしたい場合はどうしたら 良いのですか?RangeだとこれができないのでCellsを使う必要があるのですが、 それもできないとなるとどうしようもないのでしょうか? ずっと調べているのですが、どこにも解説が載っていません。どなたかお願いいたします。
974 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 21:03:59
【1 OSの種類 .】 WindowsXP 【2 Excelのバージョン 】 Excel2003 【3 VBAが使えるか .】 いいえ a | 1 | 6 b | 2 | c | 3 | 7 d | 4 | 8 e | 5 | 9 こういうような値に穴がある2つのデータを、 同じグラフ上に2つの折れ線グラフとして表現したいのですが、 値6と7の間が線で繋がりません。 つなげる方法があれば教えてください。
976 :
974 :2008/12/07(日) 21:29:59
>>974 [ツール]-[オプション]-[グラフ]-[アクティブグラフ]-[空白セルのプロット]
好きなの選べ
978 :
974 :2008/12/07(日) 21:35:42
979 :
914 :2008/12/07(日) 21:38:40
>>948 ダメです
なんでですかね
値だけ貼り付けたらやっぱり列幅行の高さ書式が消えます
どなたかバカなわたしに救済を
>>979 エクセルファイルをコピー
そして目的のシートを開き、ctrl+Aで全体選択、右クリックでコピー、
右クリックで形式を選択して貼り付け 。この時 値(v) を選択、ok
これで理解できなきゃ諦めたほうがいい
まるごとコピー貼り付けしてから、値貼り付けすればいんだよ
>>959 つづりはpivot。直訳すると「(回転の)中心」
データを整理するときに、ある一点に注目して分類する方法のこと
高校あたりで確率、統計の授業を選択すれば習うこともあると思う
984 :
名無しさん@そうだ選挙にいこう :2008/12/07(日) 22:19:04
誰か、こんな頭の悪いソフト作ったやつ殺してくれよ・・・・ まじでシネって・・・
作る阿呆に使う阿呆 アソーレ そういやエクセルで不便なところってある? ハイパーリンク関数をどこに入れても強制的にハイ゜ーリンクの扱いになる、ぐらい思い浮かばないけど 2007は使ったこと無いので知らないけど相当ひどいのはわかる
VBAで自作関数たくさんつくっていろんなファイルで使おうとしてもうまくいかないのがやだな。
>>986 つまり、うまく行かせられない自分や嫌になるってことか
精進しろよ
98時代、メモリが足りませんと出て保存も何もできなくなった時は顔面蒼白に そうなると常駐とか切っても手遅れなんだよね、理由はOSのバグかなんかだろうけど マクロならメモ帳にコピペして退避させてたのはいい思い出だ
ウメ
あめ
オメ
埋め
亀
舐め
998
999
999
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。