Excelに関する質問は、ここで!
/)_/) ( ・分かる人はできるだけ回答して下さいませ。
< ゚ _・゚> .。oO( ・回答がなくてもキレないで。急いでいても催促は3日以上開けて。
ノ) / | ( ・自己解決したらその解決手段を他の人の参考の為に書いてね。
\(_,,,_,,,)
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョンやVBAの可否など(下記テンプレ1〜4の情報)は必須。
▼━質問テンプレ (出来れば使ってね) ━━━━━━━━━━━━
【1 OSの種類 .】 Windows**
【2 Excelのバージョン 】 Excel**
【3 VBAが使えるか .】 はい・いいえ
【4 VBAでの回答の可否】 可・否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
※【4】は、VBAはわからないけどコード書いてくれるならVBAでもいいって場合は「可」
VBAを使うのは避けたいって場合は「否」にしましょう。
「VBAって何?」って場合はとりあえず「否」に。よくわからないけど使ってみたいってなら
「可」にして、
>>10-15あたりの解説を参考に使ってみよう。
※人大杉でテンプレ・Q&A・ログが読めない場合は、2chブラウザを導入するか、下記のログを読みましょう。
・前スレログ
http://makimo.to/cgi-bin/dat2html/dat2html.cgi?pc8/2/bsoft/1128606047/ ・現スレログ 上のURLの末尾の数字10桁を現スレのものに書き換え。
現スレURLは「
>>1 」←これを右クリックしてプロパティを選択すると表示されます。
・前スレ
http://pc8.2ch.net/test/read.cgi/bsoft/1128606047/
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ない処理も出来ます。
Excelの操作に関係ない部分は、VBスレやAPIスレなどの該当スレで質問しましょう。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
※ 必要情報を書かなかった場合は、回答者が勝手に解釈して答えることもあります。
情報や条件は最初の質問時にきちんと書きましょう。
情報条件なんて聞かれてから後出しすればいいなんて思わないように。
指摘されてから書き直しても、その質問にはまともな回答が付かないと思ってください。
ここは、きちんとマナーを守ってる質問者には「・分かる人はできるだけ回答して下さいませ。」というスレです。
明記してある質問マナーすら守らない人に、丁寧な回答を付ける義理なんてありませんから。
▼━回答者の心得━━━━━━━━━━━━━━━━━━━━
・1 質問者が書いたバージョンのExcelを持ってない場合は、確認したバージョンを明記しましょう。
・2 質問条件は良く読みましょう。
・3 『 【3 VBAが使えるか .】 いいえ/【4 VBAでの回答の可否】 可 』の場合はコピペで動作するコードを書いてあげましょう。
= FAQ: 基本 =
Q1:こんな関数ありませんか?
A1:「関数の挿入」にある検索機能や、ヘルプの検索を利用しましょう。
Q2:数式がエラーを返すんですけど
A2:関数をネストせず、数式を分解してみてください。
どの関数がエラーになっているのか解れば、その関数の参照先や、
ヘルプなどを見て大抵は簡単に解決できます。
Q3:計算結果やセルの値によって自動で書式を変更したいんですが
A3:条件付き書式を利用してください。
数値比較で文字色のみの指定なら表示形式でもできます。
Q4:計算結果やセルの値によって表示形式を変えたいのですが
A4:表示形式のユーザー設定で複数条件の表示形式を指定できます。
基本形式は「正の数;負の数;0の場合;文字の場合」です。(;は半角で)
又は「[>=70]70以上の場合;[>=50]50以上の場合;50未満の場合;文字の場合」というような指定も出来ます。
書式記号などに関することはヘルプを参照しましょう。
Q:5計算結果が自動で更新されなくなったんですが、どうすれば直せますか
A:5Excel(2002?)の不都合で、計算方法が手動になってしまうことがあるようです。
ツール > オプション > 計算方法
で、計算方法を自動にすることで元にもどります。
参考URL:
ttp://support.microsoft.com/default.aspx?scid=kb;ja;817716
= FAQ: 列の表示について =
Q:列名がA,B,C,D,Eではなく、1,2,3,4,5になってしまいました。
アルファベットに戻すにはどうしたらいいですか?
A:ツールメニュー:「オプション」 -「全般」タグで
『R1C1 参照形式を使用する(C)』のチェックを外せば直ります。
Q:列を256個(IV列)よりたくさん広げることはできませんか?
A:エクセルのシートは65536行×256列が仕様上の上限です。
シートを分けるとか、行と列を入れ替えるとか、データの方をまとめるとか、
列数を増やさない方向で工夫するしかありません。
Q:ひとつのブックにシートは何枚作成出来ますか?
A:物理メモリ容量やシートの内容に依存します。
= FAQ: 印刷プレビュー =
Q:印刷プレビューではセル内に収まっていた文字が
実際に印刷してみるとはみ出してしまうのですが、
何とかなりませんか?
A:「印刷プレビューと印刷結果が一致しない」のは
昔からのExcelの弱点で、どうにもなりません。
セルの幅や高さに余裕を持たせるか、
書式設定で「縮小して全体を表示する」にチェックを入れましょう。
= FAQ: マクロの”削除” =
Q:マクロを削除したのに、ファイルを開くたびにセキュリティの確認が出ます。
A:モジュールの解放が必要。
【モジュールの解放方法】Alt+F11→Ctrl+R→Module1を右クリック→解放
= FAQ: 条件によって表示を変更するには? =
Q:セルの内容を判断して、表示を変えたい
A: IF関数を使います。
=if(条件,条件が成立した場合,成立しなかった場合)
例1:基本
セルA1が1の場合○、それ以外の場合×を表示
=IF(A1=1,"○","×")
例2:if文の中にif文
A1が、1の場合○、2の場合△、それ以外×。
=IF(A1=1,"○",IF(A1=2,"△","×"))
例3:ANDやOR活用
A1が、4〜6の場合は、普通と表示
=IF(AND(A1>3,A1<7),"普通","少ないか多い")
例4:計算も出来る
A1が10までなら、A1を10倍して表示、それ以外なら2を引く。
=IF(A1<11,A1*10,A1-2)
例5:対象が空欄なら表示も空欄にする
A1が空欄なら結果は何も表示しない、それ以外ならA1から2を引く。
=IF(A1="","",A1-2)
=IF(ISBLANK(A1),"",A1-2)
詳しくはヘルプを参照しましょう。
= FAQ: グラフについて =
Q1:データの空白部分があって、そこで折れ線が切れてしまいます。
繋げたいのですが如何したらいいでしょうか?
A1:グラフを選択>ツール>オプション>グラフ>空白セルのプロット「補間してプロットする」にチェック
Q2:棒グラフに重ねて、折れ線グラフを表示するにはどうしたらいいのでしょうか?
A2:最初、すべてのデータを棒グラフで作成。
次に、折れ線で表わしたいデータ系列のどこかを、グラフ上で右クリック
サブメニュー>グラフの種類>折れ線>OK
Q3:ある系列だけ、縦軸を別にしたいです。
A3:その系列のどこかを、グラフ上で右クリック
データ系列の書式設定>軸>使用する軸「第2軸」にチェック>OK
= FAQ: 入力した値が変わる? =
Q:セルに入力した値が勝手に変わってしまうのですが
入力したままの形で表示させるにはどうしたらいいですか?
A:数字でよくあるケース(先頭のゼロが消えてしまう、日付として解釈されてしまう)
入力する時、先頭にアポストロフィ(')をつけるか、
該当するセルで右クリック−「セルの書式設定」−「表示形式」で「文字列」を選択。
文字列ではなく数値として扱いたいときは
「セルの書式設定」−「表示形式」で「ユーザー定義」を選択し、工夫する。
A:文字でよくあるケース(i⇒I、teh⇒the、cna→can など)
ツール→オートコレクト→入力中にオートコレクト
の該当する箇所を削除。
= FAQ: 行列の入れ替え =
Q:エクセルで作った表が横方向に多くなってきたので
行と列を入れ替えたいのですが。
A:コピーして、適当なセルで右クリック。
形式を選択して貼り付け→行列を入れ替える。
= FAQ: 参照するシートやセルをセルの値で指定する =
Q:A1に「5」とか「6」とか指定する値を変えたら
B1の関数で「C5」とか「C6」とか参照先が変わるようにできませんか?
A:INDIRECT関数を使ってみましょう。
詳しくはヘルプで「INDIRECT」を検索
= FAQ: 参照先を固定する =
Q:数式が参照するセルを削除すると参照先が「=#REF!」になってしまうますが
セルを削除しても同じセルを参照するようにするにはどうすればようですか
A:INDIRECT関数を使ってみましょう。
=A1 => =INDIRECT("A1")
= FAQ: ブラウザの変更 =
Q:Excelでアドレスをクリックした時に開くブラウザをIEからSleipnirなどに変更したい。
A:スレ違いです。
開きたいブラウザの設定画面でそのブラウザを通常使うブラウザに指定してください。
※ブラウザからの設定だけではきちんと設定出来ない場合もあります。
詳しい情報をお持ちの方はこのスレにてご一報ください。
= FAQ: セル内での改行 =
Q:セル内で改行したいんですがどうすればいいでしょうか
A:改行したい位置でAltを押しながらEnterを押せばセル内改行できます。
= FAQ: ワイルドカード文字の検索・置換 =
Q:* 、 ? で検索するとワイルドカードとして認識されてしまいますが、
* 、 ? の文字自体を検索するにはどうすればよいですか?
A: ~* 、 ~? のように、頭に ~ を付けることでエスケープ出来ます。
A:全角で*と入力し「半角と全角を区別する。」のチェックを外して検索する
(全角なのでワイルドカードとしては使われないが
全半角を区別しないので文字として"*"にはヒットする。)
= 整数と時間の相互変換 =
Q:1:30を1.5に変換したい、30を0:30に変換したい
A:シリアル値の「1」は1日=24時間=1440分=86400秒です。
以下のような計算やTIME関数などで変換できます。
値(A1) 結果 式
1:30 1.5 =A1*24
0:30 30 =A1*1440
2:30 250 =A1*100*24
1.75 1:45 =A1/24
30 0:30 =A1/1440
25 0:15 =A1/100/24
30 0:30 =TIME(0,A1,0)
(変換計算しただけでは表示形式は変わらないので、セルの表示形式は任意で変更しましょう)
= FAQ:時刻の入力 =
Q:時刻をテンキーで入力するとき:を入力するのが面倒なのですが、
なにか良い方法はありませんか?
A:「 ..」や「.」を「:」に置き換える方法をお試しください
1) オートコレクトで..を:に置き換える
→自動で置換されるので手間は少ないが..を使う他の入力にも影響する
2) 「時..分」で入力しておいて、後から「編集 > 置換」で範囲指定で一括置換する
→置換に一手間掛かるが、他への影響は無い
(「時.分」だと分の1桁目が0の場合狂ってしまう)
3) VBAのWorksheet_Changeイベントで置換する
→置換する範囲を指定すれば他への影響もなく置換も自動、入力も.ひとつでOK
参考コード(入力は「時.分」)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim buf As Variant
Application.EnableEvents = False
buf = Split(Target.Value, ".")
Target.Value = buf(0) & ":" & Left(buf(1) & "0", 2)
Application.EnableEvents = True
End Sub
= FAQ:シート名やブック名の書きだし =
Q:シート名(ブック名)をセルに書き出したいのですが、どうすればよいですか?
A:シート名 =MID(CELL("filename",A1),FIND("]",CELL("filename",A1))+1,31)
ブック名 =MID(CELL("filename",A1),FIND("[",CELL("filename",A1))+1,FIND("]",CELL("filename",A1))-FIND("[",CELL("filename",A1))-1)
★VBAでの回答をもらったり、Webからサンプルコードを拾ったけど、
使い方がわからないって場合はここを参考に。
Step1 VisualBasicEditorの起動
メニューより、[ツール → マクロ → VisualBasicEditor]と辿ってください。
Step2-a コードを貼る
マクロはその内容によって、置く場所が決まっています。
大抵は回答者が指定してくれたり、サンプルの中にコメントとして書いてあったりするのでそれに従いましょう。
指定がない物は基本的に「Private Sub Worksheet_」で始まる物はシートオブジェクトに、
「Private Sub Workbook_」で始まる物はブックオブジェクトに、それ以外は基本的に標準モジュールに置いてください。
(ツリーの該当部分をダブルクリックして、表示されたコードウィンドウにコードを張り付けます)
├VBAProject (hoge.xls) ←括弧内がブック名、以下がひとつのプロジェクトになります
|├Microsoft Excel Object
||├Sheet1 (Sheet1) ←シートオブジェクト(左側がオブジェクト名で、右側の括弧内がシート名です)
||├Sheet2 (Sheet2)
||└ThisWorkbook ←ブックオブジェクト
|└標準モジュール
| └Module1 ←標準モジュール(※)
└VBAProject (Personal.xls) ←個人用マクロブック
├Microsoft Excel Object
|├Sheet1 (Sheet1)
|└ThisWorkbook ←個人用マクロブックのブックオブジェクト
└標準モジュール
└Module1 ←個人用マクロブックの標準モジュール
※ 標準モジュールを追加するには、追加したいプロジェクトツリー上で右クリックし、
メニューから[挿入 → 標準モジュール]を選択してください。
Step2-b ボタンに登録する。
通常、イベントで動かすマクロ以外は、マクロの一覧から選択して実行しますが、
頻繁に使う場合や、他の人が操作する場合はシート上のボタンを押して実行できるようにすると便利です。
まず、メニューから[表示 → ツールバー → フォーム]と辿ってフォームツールバーを出し、
ボタンアイコンを押して、適当な場所にボタンを作ります。
ボタンを作ると自動的に[マクロの登録]というダイアログが立ち上がるので、
(立ち上がらない場合はボタンを右クリックして[マクロの登録]を選択)
[新規作成]を押して表示されたコードウィンドウのカーソル位置にコードを張り付けます。
既存のマクロを登録する場合は、[マクロの登録]で一覧から選択して、[OK]を押してください。
Step3 マクロの実行
ボタンに登録したものは、ボタンを押せば実行されます。
イベントで動かすものは、所定操作をした時に自動で実行されます。
それ以外はメニューから[ツール → マクロ → マクロ]と辿って表示されたマクロの一覧から選択して実行します。
Step4 トラブルが起きたら
トラブルを自己解決出来ない場合は、
・エラーが出る条件 (どうやってもエラーが出る、〜をしたときにエラーが出る、等)
・エラーメッセージ (ダイアログ上でCtrl+Cを押せばメッセージをコピー出来ます)
・エラーが出る位置 (エラーダイアログ上で[デバッグ]を選択すると、エラー位置がハイライトされます)
などを報告しましょう。
また、期待通りの動作をしない場合も、条件や想定上の結果と実際の結果の内容など詳しく書きましょう。
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼環境・書式
・ 列数を256列以上、行数を65536行以上に増やす
・ 条件付き書式を3つ以上設定する (文字色だけなら、入力規則でも3つ設定可能。それ以外はVBA)
・ 行の高さを0.25きざみ以下の単位で指定する
・ セル内の文字を○で囲む、一部のみ2段にする (オートシェイプ、オブジェクト)
・ オートフィルタで英字の大小文字を区別する (小文字 → 半角、大文字 → 全角、と使い分ける)
・ 祝日を判断する (作業セルに祝日を列挙、VBA)
▼操作
・ ファイラーの右クリックメニューからの新規作成で、Excelで設定したシート数のブックを作る (任意のシート数のテンプレートを作成)
・ 複数シートを選択して入力規則やシートの保護を設定する (VBA)
・ オートコンプリート機能を、別列や離れたセルで動作させる (VBA)
・ 選択範囲から一部を除く
・ 優先キーを3つ以上指定しての並べ替え (優先度の低い方から順に並べ替える)
・ 1セルを分割 (分割したいセル以外を結合)
▼数式・関数
・ セルの書式情報を関数式で取得する (ユーザー定義関数)
・ 表示定式以外の書式の取得設定 (ユーザー定義関数)
・ 関数式でセルの選択状態を取得する (VBA)
・ セルの値でパスを補完して、開いてないブックのセルを参照する (VBA)
・ 入力したセルに結果を返す (VBA)
・ 範囲を引数にしての文字列連結 (ユーザー定義関数)
・ 不定な数の結果を返す (VBA 必要最大数が解っていれば最大数分の数式を組み、結果上不要なものを論理式で非表示にする)
・ 値の書き換え、値の保持 (VBA)
・ 複数の結果を抽出、不特定数の結果を返す (VBA、結果の最大数が解っていれば最大数以上の式を論理式で組む)
★ Excelで出来ないこと、仕様上の制限 (括弧内は代用法)
▼VBA
・ ExecuteExcel4Macroの参照で空セルと0値を区別する
・ セルの値や変数値で直接変数名を指定する
▼ユーザーフォーム
・ フォーム上から変更したプロパティ値の保持 (シートや外部ファイルに書き出して、次回読み込む)
▼グラフ
・ 棒グラフでひとつだけ突出したデータがあった場合に波線を入れて位置を合わせる
(オートシェイプなどで見た目だけそうなるように弄る、別アプリでグラフを作り、オブジェクトとして挿入)
┌┐
〜〜
||
16 :
名無しさん@そうだ選挙にいこう:2005/11/07(月) 19:57:06
【1 OSの種類 .】 Windows95
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 テキスト EXCEL
どのようにしてテキストファイルの中の文字ABCからABのみを読み込むのですか?
>>16 具体的に何がしたいの?
少々でもVBA使えるなら
>>2・8に有る通り
自分で書いたコードを晒せ
18 :
16:2005/11/07(月) 20:28:57
すごく長くなるのです。結局、置換よりいいマクロが書けないのじゃないかと。
30行以内に収まりませんよね?
19 :
名無しさん@そうだ選挙にいこう:2005/11/07(月) 20:28:59
ナップザック二等兵乙。
別に情報を出すのに必要なら2レス使っても3レス使ってもいいよ
1回の書き込みに1レスしか使っちゃいけないというルールは無いけど
情報を後出し小出しはダメってルールはあるからよろしくね
結局回答要らないってことなのか
22 :
16:2005/11/07(月) 23:32:24
いいえ、短く書けるかどうかと。10行きるのは無理なキガス
コードがどうとかより何がしたいのか理解できない
>>22 だから何レス使ってもいいから、自分が書いたコードを省略せずに全部貼れと
ちゃんと貼らないなら回答不要と見なす
>>16=22
>どのようにしてテキストファイルの中の文字ABCからABのみを読み込むのですか?
こんな具体的なことが分からない質問しておいて、
>10行きるのは無理なキガス
10行なんて境界線引かれても、yesともnoとも言えるわけないだろ。
個人の感想なら、ブログにでも書いとけ。
26 :
名無しさん@そうだ選挙にいこう:2005/11/07(月) 23:56:10
プログラミングで回答である数値 x,y を500個だし、xを縦軸、yを横軸にし
グラフを作成したところ、
「データ範囲が複雑すぎるため、表示できません」
とでます。データの範囲を変えればいい とでるのですが やり方がわかりません。
教えてください。
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
27 :
16:2005/11/07(月) 23:57:15
30 :
16:2005/11/08(火) 00:02:14
バイナリね
まあ、本人が回答要らないって言うんだから16は放置でいいでしょ
>>26 元のデータ、データ範囲
つーかこっちも意味不明だな
16よ、とりあえずおまえには、おまえが書いたその数十行のコード以外
何も聞き返してはいない
何がやりたいのかもよくわからないが、とりあえず結果は出てるようだから
文章表現力のない16に解説させるよりコード見た方が早いからな
コード以外のことは無駄だから書くな
情報を出せないなら、ここで情報を貰おうとするな
以上
33 :
16:2005/11/08(火) 00:16:55
いろんなコードで表現できるでしょうけど目的は明確です。
流れを追うと俺のコードは想像つきます。10行以内でできるのですね?
テンプレNAGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEよ
35 :
26:2005/11/08(火) 00:20:51
>>31 分かりにくい説明ですみません。今現在、
A列に5.0〜10.0 までの数が500個
B列に1.8〜2.6 までの数が500個あります。
A列の数字を横軸、B列の数字を縦軸にして グラフを作成したいのですが、
横軸の目盛りの設定ができません。
(目盛りが0〜35000の範囲で示されているのでグラフが左によってしまう。)
目盛りの設定を変えるには どうしたらいいですか?
36 :
16:2005/11/08(火) 00:21:08
やっぱいいです。
スレ汚し失礼しました。
偽者が湧くかも知れませんが放置してください。
37 :
16:2005/11/08(火) 00:32:32
以降。偽者ね。あきらめよう。遅くなる。今のままだと
(´-`).。oO( 何グラフなんだろう・・・ )
39 :
26:2005/11/08(火) 00:33:43
外部参照についてお聞きしたいのですが、
(1)のようにして、book名.xlsのシート名のA列に文字が記入されているのは
何セルか?というのを求めれますが、A列に○と記入されているのは
何セルあるか?というのはどのようにして求めればよいのでしょうか?
(2)のようにした場合、エラーがでました。
※(2)の時、対象のファイルを開いておけば、値を取得するとことができましたが、
対象のファイルを開かずして、実行したいです。
(1)=COUNTA('ドライブ名:\フォルダ名\[book名.xls]シート名'!A:A)
(2)=COUNTIF('ドライブ名:\フォルダ名\[book名.xls]シート名'!A:A,"○")
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
よろしくお願いします。
初心者は行数に拘る子多いよね。
単に無駄な事していて行数が増えてる場合もあるが、
行数が少ないから早いとも限らないし、
行数が少ない方が良いコードだとも言えないのに。
43 :
ケチ:2005/11/08(火) 00:42:21
>>41 そうだねぇ。
> 行数が少ない方が良いコードだとも言えないのに。
ここは納得できないけどね
初心者は納得できなくても仕方ないよ
行数少ない方がスッキリしてて良いコードに見えるからね
でもCなんかだと行数が少ない方が良いと言える場合が多いが
VB・VBAではそうとは限らない場合も多い
いろんな言語扱ってると解ってくると思うよ
>初心者は納得できなくても仕方ないよ
自称玄人乙。
>VB・VBAではそうとは限らない場合も多い
いいのか悪いのかはっきりしろ。こんな抽象表現で説得するな。
小学生レベルだろ。
せめて実例挙げろよ。言うのは簡単。
46 :
ケチ:2005/11/08(火) 01:00:01
IFを:で不具合発生はそういうことか
47 :
39:2005/11/08(火) 01:01:29
散布図にして、「軸の書式設定」のやり方もわかりました。
ただ、
x/数値軸目盛
最小値;5
最大値:10
目盛り間隔:1
補助目盛間隔:0.05
y/数値軸目盛
最小値;1.8
最大値:2.6
目盛り間隔:0.1
補助目盛間隔:0.01
とすると、グラフが横ばいになり、うまく表示されません。
助言をおねがいします。
> せめて実例挙げろよ
一番陥りやすいのは組み込み関数の多用だな
openして一気に読み込んでreplaceすりゃいいじゃん
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル、図形描画
図形描画で描いた、矢印、円など、範囲指定して
一気に削除する方法はありますか?
CTRLキーを押しながら、
ひとつひとつ指定していますが、
100以上あったりするので、大変なんです。
どなたか、お願いします。
「オブジェクトの選択」モードで範囲選択してDelete
53 :
タレ蔵:2005/11/08(火) 12:00:37
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 マクロ、ピボットテーブル
ピボットテーブルを作成しマクロ記録したのですが、実行時エラー1004
PivotTableクラスのPivotFieldsプロパティを取得できません が出て
しまいます。実際に作成できているピボットテーブルが、その記録マクロ
でエラーになることが理解できません。
よろしくお願いします。
55 :
タレ蔵:2005/11/08(火) 12:59:08
お願いします。
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"Sheet2!C1:C37").CreatePivotTable TableDestination:="", TableName:= _
"ピボットテーブル3"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("ピボットテーブル3").SmallGrid = False
ActiveSheet.PivotTables("ピボットテーブル3").PivotFields("精算規格").Subtotals = Array( _
False, False, False, False, False, False, False, False, False, False, False, False)
この精算規格でエラーが出ます。精算規格はシートの見出しに存在しています。
56 :
51:2005/11/08(火) 13:01:24
> PivotFields("精算規格").Subtotals
当然だな
そのコードじゃ"精算規格"なんてフィールドはまだ作られてないし
58 :
タレ蔵:2005/11/08(火) 14:00:47
マクロの自動記録がおかしいのですか?
何も手を入れていませんが。
いや、記録した時の状況がおかしいんだろうな
特殊な状況で記録したマクロは、その特殊な状況を事前に再現してやらないと正常に実行出来ない
60 :
タレ蔵:2005/11/08(火) 14:39:26
特殊な状況ですか?
とりあえずありがとうございました。
(途方暮)
【1 OSの種類 .】 Windows 2000
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 不可
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】
「関数で返ってきた値」を「ただの文字列」に置換する方法はありますでしょうか?
コピペしたときに関数でなくその値をひっぱるようにしたいだけなのですが。
>>62 「形式を選択して貼り付け」ですね。
ありがとうございます。
初歩的な質問で失礼しますたorz
64 :
名:2005/11/08(火) 23:37:16
1255が、1000〜1550、1553、1560、1565 に含まれてるかどうか調べる方法ってある?
xp,2000,vba不可、VBA回答不可
66 :
名無しさん@そうだ選挙にいこう:2005/11/09(水) 01:06:39
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
WindowsXP+Office2003で使用しております。
テンプレート使用で作業ウインドウからOffice Onlineにアクセスすると、
Word2003からだと日本語のマイクロソフト当該ページに飛ぶんですが、
Excel2003からだと英語のマイクロソフトのページに飛んでしまいます。
こんな現象が起こってるのは私のところだけでしょうか?
Excelからも日本語のページに飛べるようになりませんでしょうか?
いちいち日本語ページへのリンクを押すのはめんどくさくって・・・
よろしくです。
>>66 office online →Office Worldwide→
Japaneを選択・Remember this selection.にチェック→GO
68 :
66:2005/11/09(水) 01:46:30
>>67 ありがとうございました!!!
解決です。すっきり。(^∇^) 感謝。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ×
【4 VBAでの回答の可否】 ×
【5 検索キーワード 】
あまりにもな質問かも知れませんが、
excelで罫線を使ってデータベース(5列程度)を作成しています。
その集計データを納品書に起こす方法というのはあるのでしょうか。
出来ればそのようなアプリがあると便利なのですが。
ちなみに、現在は他の納品書作成ソフトで納品書を出しています。
>>69 普通は納品書作成ソフトを持っていないから自前で作る、または、
今まで蓄積したデータを使いたいから自前で作るっていう流れじゃないのかな。
69さんもデータベースっていう言葉を知っているのだから
素直にデータベースソフトを探せばいいと思いますよ。
ところで、あなたがご使用の納品書作成ソフトには
そういう機能が付いていないのですか?
71 :
69:2005/11/09(水) 08:19:04
>>70 なるほど、やはり自作するのが一番の近道なんですね。
データベースソフトを探し、もう少し勉強してみることにします。ありがとうございました。
ええと、現在使っているのは、販売らくだというソフトです。
データの蓄積等は可能なのですが、仕入と売りの在庫管理が出来ないのでexcelを使っています。
納品書などの相手先に渡す物は、再度打ち込んで作っています。
excelに一括で出来るようなソフトを探したりしてもいいかもしれませんね。少し探してみます。
72 :
69:2005/11/09(水) 08:20:13
○excelにこだわらず
×excelに
です。たびたびすみませんでした。
73 :
名無しさん@そうだ選挙にいこう:2005/11/09(水) 20:54:05
【1 OSの種類 .】 WindowsXP SP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 今勉強中です
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 連番 最終行
会員名簿の入力フォームを作成しています。
登録ボタンをクリックしたときに各データを追加して
会員番号を作成したいのです。
会員番号の書式は決まっていて M-H17110001 という感じです。
この、-以下は和暦の年・月・その月の連番4桁となっています。
月ごとにブックを作成するので、DATEとFormatを使うのかな、
と考えていますが、最後の連番をどうやって出したら良いのかわからず、
悩んでいます。
よろしくお願いいたします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 何とかかんとか×
【4 VBAでの回答の可否】 ○
あるシートでa1〜f150までデータを入れては更新処理をし、
次のデータを入れては更新といった事をしています。この
更新部分は出来ているんですけど、更新した後、またa1ま
で戻るのにえっちらおっちらな状態です。んで教えて欲しい
んですけど、一気にカーソルをa1までもっていく事、できな
いっすか?
>>76 すんませんが、さすがにそれだけじゃ判りません(^^;。VBAのヘルプにも出て来ませんし。
もー少し詳しく教えてください〜。
78 :
73:2005/11/09(水) 21:50:19
>>74 うー?
回答ありがとん。
だけど、なんでそういうふうなの?
意地悪だね、書き方が…
がんばって調べるからもういいお(`・ω・´)
サンクスでした。
>>77 VBAじゃなくてHomeキーを押せってことでしょ
「VBAで」なんて一言も書いてないしな
でも正確にはCtrl+Homeかな
>>78 情報欲しければおまえも情報出せってだけでしょ
別に今からコード書けって言ってるわけじゃなくて
出来てる部分だけ出せって言ってるだけで手間が掛かるわけでもないし
81 :
名無しさん@そうだ選挙にいこう:2005/11/09(水) 23:49:49
【1 OSの種類 .】 WindowsXP SP2
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 やっとこさ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル 重複データ 抽出
シート1に、A列の1行目から10000行まで。
シート2に、A列の1行目から30000行まで、セルの中に値があります。
この二つのシートを比較して、重複している値を探して
重複している値をシート3に出力したいと思っています。
はじめは同じシートに、A列に全部値を入れて、IF関数、COUNTIF関数を組み合わせて
隣のB列に重複したことがわかるような表示がされるようにしていましたが、
値の数が多く実用的ではありませんでした。
こういった、大量なデータの比較、抽出で
よい方法をどなたかご存じないでしょうか。
82 :
名無しさん@そうだ選挙にいこう:2005/11/09(水) 23:52:32
【1 OSの種類 .】 WindowsXP SP2
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 やっとこさ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル 重複データ 抽出
シート1に、A列の1行目から10000行まで。
シート2に、A列の1行目から30000行まで、セルの中に値があります。
この二つのシートを比較して、重複している値を探して
重複している値をシート3に出力したいと思っています。
はじめは同じシートに、A列に全部値を入れて、IF関数、COUNTIF関数を組み合わせて
隣のB列に重複したことがわかるような表示がされるようにしていましたが、
値の数が多く実用的ではありませんでした。
こういった、大量なデータの比較、抽出で
よい方法をどなたかご存じないでしょうか。
83 :
81:2005/11/09(水) 23:53:39
二重投稿ししまいました。
申し訳ありません
すいません質問です。
A12
A3
A69
A102
A19
A187
A50
とかいうレコードの列があったとして、
その数字の部分を
A012
A003
A069
A102
A019
A187
A050
といったような3桁にできませんか?
85 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 00:19:23
a1からa7に↑、結果をb1からb7の場合
For IL = 1 To 7
A$ = Cells(IL, 1)
A$ = Left$(A$, 1) + Right$("00" + Mid$(A$, 2), 3)
Cells(IL, 2) = A$
Next IL
ちょっとダサいかな。もっとスマートなの知ってる人教えて
86 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 00:53:46
B1:B20に数字が入っていて、重複を除いて数字の種類を数える場合、
以下のような関数で計算できるという昔のメモがありました。
COUNT(0^FREQUENCY(B1:B20,B1:B20))
実際にこれで数の種類を数えられたのですが、どういう仕組み
なのかすっかり忘れてしまいました。もし分かる方がいたら
教えてください。
87 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 01:05:33
>84
セルで計算する場合は
=LEFT(A1,1)&RIGHT("00"&MID(A1,2,LEN(A1)-1),3)
でいけるでしょう。↑ではA1セルにデータがある場合です。
=LEFT(A1,1)&TEXT(MID(A1,2,3),"000")
の方がいいんじゃね?
>>86 ヘルプ見て解らなければ、それ以上何を解説しろと?
89 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 01:15:06
91 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 09:07:49
セルH5に =AND(I3>M6,I3<N6) というのが入ってるとして、
これをI5にコピーすると、=AND(J3>N6,J3<O6) てなるんですけど、
元のまま=AND(I3>M6,I3<N6) でコピーするのはどうしたらいいんでしょう?
形式を選択して貼付けでいろんなパターンでコピーしたんだけど出来なくて。。
絶対参照
93 :
91:2005/11/10(木) 09:16:31
絶対参照は参照元が移動させたりしたいんで使えないんですよね。。
>>91 92さんの言うように絶対参照にするか、あるいは数式バーに
表示された数式をコピーしてそれを貼り付ける。
どうでもいいけど質問は >1-2 を読んでからにせい。
95 :
91:2005/11/10(木) 09:26:34
数式バーにコピーしかないですか。わかりました。ありがとうございました。
96 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 11:48:13
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
A B C
1 数字入力 1.006 =A1*B1
2
3
という簡単な数式なのですが、A1に数字を入力して
C1に出てきた 解を自動的にクリップボ−ドにコピ-する方法って
ないでしょうか?
よろしくお願いいたします。
97 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 12:59:16
VLOOKUPで検索した数値を正常にグラフ化できません。
(IFとISERRORを組み合わせて、VLOOKUPの結果に#N/Aが表示されないようにしています。)
全く同じ数値を別セルに手入力したら、正常にグラフ化出来るのですが。。。
どうしたら可能でしょうか? ご教授お願いします。
98 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 13:23:50
>>97 エラーが出たら""、じゃなくて、ゼロにしたらできる。
と思う。
99 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 13:24:54
そして、ゼロの場合は文字の色を白にするのだ。条件付書式で。
>>97 別に#N/Aが表示された状態でもグラフは書けるのだが。
そこが欠値扱いになるだけで。
101 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 14:40:12
>>98 >>99 レスありがとう。
0指定にしてみたけど、うまくいきません。。。
系列値:0、0、0、64、0、0、72.9・・・
このデータをグラフ化すると、全てが0としてプロットされます。
#N/Aを""にしていた時も同様。
別の列に手入力した、「0、0、0、64、0、0、72.9・・・」は正常にプロットされるのですが。。。
何か策はないでしょうか。。。
102 :
97:2005/11/10(木) 14:46:30
>>100 系列値:#N/A、#N/A、#N/A、64、#N/A、#N/A、72.9
これをグラフ化しても全て0になっちゃうんです。。。
困ったぁ〜(;。;)
>>102 手元では普通に書けるんですが。
手入力しても、VLOOKUPで作っても。
何か別の原因のような気がする。
たとえば棒グラフとかにしてみても、その値のあるところは
プロットされませんか?
常にデスクトップ上にあるフォルダにバックアップを取るコードは
どうすればいいですか?
配布するので環境が多様です。
FSOとかサパーリわからん
105 :
97:2005/11/10(木) 15:13:28
>>103 同じです。やっぱり64や72.9といったデータも0扱いでです。
>>104 FSO使わなくても出来るよ
元ファイルのバックアップならFileCopy、
指定保存場所以外にも保存したいってことならSave
>>2の※に有るとおりFSOは解らないとしてもVBAはわかると解釈して回答はここまでにします
情報後出しは止めてね
>>105 すまん。俺はお手上げ。
ただ、手入力した「0、0、0、64、0、0、72.9・・・」がグラフにできて
VLOOKUPで作成した同じ値、または「#N/A」入りの値の組が
グラフにできないというのは、通常ありえないです。
そんなことが起きるなら、関数で計算した値ではグラフが描けない
ことになってしまいます。
グラフ化する際の操作にどこか違いはないか?
くらいしか言えないです。
強いて試してみるなら、そのVLOOKUPで作った列をコピーして、
別の列に値だけ貼り付けて使ってみるとか…かな。
108 :
97:2005/11/10(木) 16:11:15
>>107 ありがとうございます。
自分も今まで関数使ったデータがグラフ化出来ないなんて経験ないし、何やっても駄目なんで少々混乱してます。
また何かヒントを思い出されたら書き込んでおいてやって下さい。
(゜)(。。)ペコッ
109 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 16:16:47
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP(2002)
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
アドインに関する質問です。セルにアドインが提供している 関数を記述すると
そのファイルがアドインファイルへの絶対参照を持ってしまうようなのですが、
これを回避することはできないでしょうか。
例えば、Aさんが作ったブックをBさんが開くとき、AさんのExcelにもBさんの
Excelにも同じアドインがインストールされているにもかかわらず、アドインの
あるディレクトリが違うために、「このブックにはほかのデータソースへの
リンクが(略」と怒られてしまいます。これを回避する手段はないものでしょうか。
Googleさんにも大分聞いてみましたが解決しませんでした。どなたかお力を
お貸しください。
110 :
kty:2005/11/10(木) 17:01:48
か
>>109 アドインだろうとなんだろうと、別ブックの関数を呼ぶには、そのブックへの参照が必須
アドインの関数は関数名だけ入れれば使えるから参照はしてないように見えるかも知れないけど
実際にはアドインファイルを絶対参照して関数を呼び出してる
アドインではない他のブックの関数も、自分で参照部分を書けば他ブックから使えるわけで
アドインはこの参照部分を自動で書いて非表示にしてくれてるだけに過ぎない
セルに他ブックの関数を書く限り、アドインだろうとなんだろうと「参照!関数」になるのはどうしようもないので、
自ブックに関数を置いて外部参照無しに使えるようにするか、
Open時にVBAで関数式を入力するようにして、新たに参照を書き換えるかだな
ならねーよwww
にわかの熱い解説乙www
>>112 正しくクールな解説キボン。
それが出来ないなら、よくわかってないのにとりあえず煽ってみただけ?
wwwを見ただけで低能なのが解るでしょ。
こういう子は偶に湧くが、放っておくが吉。
115 :
109:2005/11/10(木) 17:58:14
>>111 回答ありがとうございました。
すると、アドインでワークシート関数を追加すると、その関数を使っている
ブックの配布が困難になるわけですな。この仕様でどうなんでしょうね。
アドインって、マクロだけを配布したい場合に使うものだと思うんですが、
ローカルマシン上でどこにアドインがあるかに注意しないと問題が起こり
うると。そもそもワークシート関数はアドインで追加するなってことですかね。
参照先情報を持たせないで、もし現在利用できるワークシート関数にその
関数が無ければエラー、とか、設定でできるようにしてくれたらいいのに。
116 :
名無しさん@そうだ選挙にいこう:2005/11/10(木) 18:02:07
>>108 vlookupで参照している値の書式が数値じゃなくて文字列になっているとか?
や、別に教える義務もねーしwww
じゃあなんでアドイン販売してるところがあるんだろうねwwwwwww
困った困った
あっはっはっはっはっはwwwwwww
いやー、おもしれーwww
>>115 や、ちゃんと方法はあるよ。ていうか、素直にやってれば大丈夫なんだけどな。
でも今回はしっかたの馬鹿を笑うほうがおもしれーので教えないwww
ごめんねwwww
知らないので教えられないってことか。
まあ、知らなくても「知ってる」と口先で言うことはいくらでもできるし。
どうせ「本当に知ってる」って口先だけで言い出すんだろうけど。
>アドインって、マクロだけを配布したい場合に使うものだと思うんですが
そう、マクロ(ユーザー定義関数)だけ配布したい場合に使う物
マクロを使ったブックを配布したい場合は、アドイン+ブックではなく
そのブックにマクロを入れるべき
>ワークシート関数はアドインで追加するなってことですかね。
いいえ
ユーザー定義関数をアドインで追加するのは間違ってませんが
アドインで追加した関数を含むブックは配布しないのが基本
個人用マクロブックって普通は表示されないものらしいが
EXCELを起動したら当たり前のように開いてしまう。
前使ってたPCで使ってたマクロを使うため
PERSONAL.EXEをそのまんまコピって
XLSTARTに放り込んで使っている。
どうやったら表示されないように出来るでしょうか。
WindowsXPSP2 Excel2000
校内用スリッパって普通は見向きもされないものらしいが
女子高生を想像したら当たり前のように勃ってしまう。
前通ってた学校で使ってたスリッパを探すため
母校の名前をそのまんまググって
裏サイトにアクセスして注文している。
どうやったら親バレされないように受け取れるでしょうか。
WindowsXPSP2 Excel2000
WiindowsXP ProSP2 Excel2003です。
上の20行ぐらいをスクロールしないでロックする方法は無いでしょうか?
右のスクロールバーの上のところからドラッグして20行ぐらいまで引っ張って来ると、
上の画面のセルを選択しなければスクロールしないのですが、したの画面でも同じセルを
表示することが出来てしまいます。
上の画面はスクロールせず、表示行を固定する方法がありましたら教えてください。
125 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 09:11:37
126 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 14:29:20
知り合いのマシンで不思議な現象が・・・
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP(2002)
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
起動して最初に表示される新規ワークブックの列が左右反転しているのです。
右側からA列が始まり、シートタブも右側に寄り、シートタブの移動ボタンが左側に表示されます。
他のパソコンで作成したExcelワークブックを開くとちゃんと表示されるのですが、新規ワークブックを作成するとこのようになります。
一通りオプション設定などは確認したのですが、該当するオプションは見当たりませんでした。
何かご存知の方は居ないでしょうか?
>>126 ツール>オプション>インターナショナル
「標準の方向」を「左から右へ」にする。
または「現在のシートを右から左へ表示する」のチェックを外す。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP(2003)
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
VBAでセルの行高と列幅を複数のシートで同時に変更したいのですがうまくいきません。
これと同じような手順で複数のシートで同時にフォントを変更したときに、
コンマがうまくついてくれません(1000→1,000 という風に変更したいのですが・・・)。
これらの処理は複数シートの同時操作では処理しきれないのですか?
対処方法がわかる方がいれば教えてください。
130 :
128:2005/11/11(金) 17:12:21
>>129 指摘ありがとうございます。
下の1つめのプロシージャを使って2つめのプロシージャで同時に変更したいです。
1つめのプロシージャは変更してはいけないと言われています。
Sub VBAによる書式設定()
Rows("3:3").RowHeight = 20
Rows("9:9").RowHeight = 16
Columns("A:A").ColumnWidth = 15
Columns("B:C").ColumnWidth = 8
Columns("D:D").ColumnWidth = 10
Range("A1").Select
End Sub
Sub 一括作成()
Sheets(Array("Sheet1", "Sheet2", "Sheet3", "合計")).Select
Call VBAによる書式設定
End Sub
>>130 Dim ws As Worksheet
For Each ws In Worksheets
ws.Activate
Call VBAによる書式設定
Next ws
複数シート同時変更は出来ないが、ループ回して自動で全てのシートに処理することはできる
桁区切りはフォントではなくNumberFormat ←使い方はヘルプ見れ
133 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 17:55:45
>>127 判りました
そんなところに在ろうとは^^;
134 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 18:27:28
例えば、ボタンを押すとA1のセルにある読みとA2のセルにある単語を
IMEの辞書に登録するといった事をしたいのですが、
出来ますでしょうか?
136 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 19:31:12
138 :
>>134:2005/11/11(金) 20:01:27
「プロットエリアの色を、XおよびYの値によって変えたい」ということかな。
うーん、無理じゃないかな。
たぶん「プロットエリアの色を、XまたはYの値によって変える」
のも、直接には無理。
「プロットエリアの色を、XまたはYの値によって変える」(どちらか一方)なら
ダミー系列作っておいて、ダミー系列の「グラフの種類」を「面グラフ」に変更すれば
それらしくは見える気がする。ためしてないけど。
どうしてもExcelの機能の範囲でやるなら、
「グラフエリア」「プロットエリア」を「塗りつぶしなし」にして
四角形オブジェクトを背面にそろえると、それっぽく見えるかも。
140 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 21:11:08
たとえば、黄色のセルの数字だけを足す、ということはできないものでしょうか?
141 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 21:17:50
できると思ふのです。
143 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 21:55:58
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 ヘッダー・フッター
ページが変わるたびにヘッダー・フッターを変えたい、具体的には
各ページの一番左上のセルの内容を参照して、ヘッダー・フッターに反映させたいのです。
1つのシートで作らずに、各ページごとにシートを分けて、
そのシートのタイトルを参照するようにすれば出来るのですが、
この方法だとシートを70枚以上出来ることになり、
また参照させようとする文言1つ1つは長いので、
シートのタグがやたら長くなってしまい、編集作業が
やりにくくなりそうなので出来れば避けたいのです。
何か方法があるのでしょうか。
よろしければアドバイス頂きたくお願いします。
144 :
143:2005/11/11(金) 22:10:41
すいません。
【3 VBAが使えるか .】 いいえ
でした。
145 :
134:2005/11/11(金) 22:30:17
>>139 早速のご回答ありがとうございました。
できないんですねぇ・・・。しかし、できないことが分かっただけでも収穫です。
グラフはパワーポイントに使います。ので、グラフのプロットエリアの色分けは
オートシェイプを使って切り貼りしてみようと思います。
ご丁寧な回答ありがとうございました。
146 :
名無しさん@そうだ選挙にいこう:2005/11/11(金) 23:52:04
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 セル コピー
通常、A1に「=B1」と入力したものをA4にコピペすると「=B4」となり、A7にコピペすると「=B7」と変化していきますが
それを防ぎ、A1に「=B1」と入力したものをA4にコピペすると「=B2」となり、A7にコピペすると「=B3」となるように
コピペした値が1増加するようにさせるにはどうしたらよいですか?
147 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 00:39:43
>>146 毎回A列だけなの?
B列C列とかにランダムにコピペすんの?
つーかコピペはそれにしか使わんのか?
148 :
146:2005/11/12(土) 01:00:17
>>147 A列ってのは例ですが、コピペする列は固定です。
あと
>>つーかコピペはそれにしか使わんのか?
ってのはこれにしか使わないとすると策があるってことですか?
149 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 01:50:08
宜しくお願いします。
家計簿のようなものを作ってるんですが月ごとにシートを分けて作っています。
このたび年間を1シートにまとめてボタンで「日付」「金額」「摘要」といった感じで
それぞれ昇降の並べ替えを出来るようにマクロをいじってたのですが
それぞれの月で
1 〇〇 ××円
3 □□ △△円
・
・
というふうに入力していた為に単なるコピペでは何月かわからなくなってしまいます。
そのため日付のセルにいっぺんに「5/」「5-」といった
月を表す文字を入れたいのですがどうしたらよいのでしょうか?
書式のユーザー定義での追加だと並べ替えの時に不都合なので
何か他にありますでしょうか?
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 数字を追加(文字列を追加)
150 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 02:19:56
作業列で
月の列作って月を入力して
もう一個、月の列と日の列をCONCATENATEで足せばいいんじゃねーの
151 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 11:27:40
>>146 A2にコピペして、セルの挿入(下方向にシフト)で移動させてやれば?
152 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 12:20:24
マクロなんか組んだ覚えもないのに、ファイルをOPENするたびに、
「マクロを有効にしますか?」みたいな表示が出て困ってます。
一応、
>>5の 「 FAQ: マクロの”削除” 」 を参考にやってみましたが、
”Module1を右クリック”とありますがModule自体が存在せず、分からず仕舞いでした。
なんかのウイルスでしょうか??
153 :
152:2005/11/12(土) 12:21:34
↑すいません忘れてました
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 マクロ セキュリティ
>>152-153 >>12を参考に、ブックオブジェクトやシートオブジェクトに何か書かれてないか確認しろ
そこにもなにも書かれてないなら、そのブックをうpしてみな
155 :
152:2005/11/12(土) 13:19:45
>>154さん
ありがとうございます!
Private Sub OptionButton1_Click()
End Sub
こんなのが書かれてました。
なんか意味あったのか謎ですが、削除して空白にしたらもう最初のメッセージは出てこなくなりました。
助かりました!
156 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 14:32:52
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP(2000)
【3 VBAが使えるか .】 いいえ
初歩的な質問ですいません。
いままで、pgup pgdn でアクティブになったセルが動いていたのですが、
画面がスクロールするだけで、アクティブセルが移動しなくなりました。
なにかキーをいくつか触ってたらマウスがどうかという質問画面が出て
きてからおかしくなりました。
修正方法を教えてください。
これも定期的に出るな
テンプレに加えた方がいいかも
>>156 つ Scroll Lock
158 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 17:34:32
>>157 ありがとうございます。
なおりました。
159 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 21:28:39
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 マクロ コピー 指定
A B C
1 あああ
2
>>1いいい
3
>>1ううう
4
>>2えええ
のようなデータを
A B C
1 あああ いいい ううう
2
>>1いいい えええ
3
>>1ううう
4
>>2えええ
のようにしたいんですがご指導お願いします
数式のコピーについて質問です。
A B C
1
2 =B2
3
上のような状態の数式があったとします。
この「C2」の数式を「B2」にコピーすると
A B C
1
2 =A2 =B2
3
となるのですが「=B2」のまま「C2」の数式をコピーする方法はないのでしょうか。
要するに参照先を変えずに数式をコピーする方法が知りたいです。
絶対参照や数式バーからの直接コピペ以外で何かありましたらお願いします。
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
161 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 21:42:55
>>160 絶対参照や数式バーからの直接コピペがなぜ駄目なのかワカラン。
それであなたの望む結果が出るのに。
162 :
名無しさん@そうだ選挙にいこう:2005/11/12(土) 21:46:29
>>160 私がよく使う手は、
1.”=”を”X”に置き換える。
2.コピーする
3.貼り付ける。
4・”X”を”=”に置き換える。→完了。
”X”は任意の一文字。”あ”とか”○”とか、要するにコピペ範囲で使われていない文字ならなんでもいい。
Excelはワープロじゃないからね
ヘッダー・フッターの機能はWordに比べてものすごく弱いし
そもそもWordだってヘッダー・フッターはワープロとして並以下だからなぁ
>>159も表計算じゃなくてテキスト整形の話だね
皆Excelの使い方間違ってるよなぁ
まあExcelが
>>2・7に有るとおりなんでも出来ちゃうのが原因なんだけど
Excelで何でもやろうとするのは自分で何でも出来る奴だけにしてくれ
人に聞かなきゃ出来ないような奴は、素直にソレを得意とする分野のソフトを使おうよ
Excelの得意とする分野のことが解らなくてここに来るのは一向に構わないけどさ
165 :
159:2005/11/12(土) 23:01:00
>>164 すいませんでした。勉強してから出直します
166 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:06:03
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Exce2003
【3 VBAが使えるか .】 はい コピペ改変程度
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Googleやヘルプでの検索キーワード→エクセル ダブルクリック 値 入力
このソフトの「データ」シートの「チェック」列のように、
ダブルクリック1発で値を入力する方法を教えてください。これはVBAを使用しているのでしょうか?
今のところ「リストから入力」しか手段がありません。
167 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:06:52
168 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:18:26
>>166 Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
ActiveCell.Value = "レ"
End Sub
>>166 >これはVBAを使用しているのでしょうか?
たぶん、
いやおそらく、
いや間違いなくVBA使ってる
>ダブルクリック1発で値を入力する方法を教えてください。
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If ダブルクリックで入力を行う範囲条件 Then
Target.Value = "チェック文字"
Cancel = True
End If
End Sub
改変は出来るってことだし、
>>166にも書いてないし
条件後出しはNGなので範囲条件は自分で書いてね
170 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:36:25
>>169 よこから申し訳ないですが
Cancel =ture
ってなにしてるのですか?
171 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:46:49
>>170 お約束みたいなもんかな
やるのとやらないのとで比べてみるといいよ
172 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 00:54:08
>>171 比べてみたんですけどよく分からなくて。
if の条件式がtarget=""でやったから分からなかったのでしょうか?
ヘルプみても掴みきれないし・・
173 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 02:10:24
>>172 そのイベントでのデフォルトの動作(この場合ならダブルクリック)を
回避するためのものだと思う。
174 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 03:10:34
質問があります。よろしくお願いします。
Excel 2000はWindows 95にインストール可能でしょうか?
パッケージ見ろ
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ある程度
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 保護 消去
保護されたセルを含む範囲を指定して消去する方法をお教えください
例えば
A
1 ヤマダ
2 --保護されたセル
3 山本
4 --保護されたセル
5 鈴木
上のような場合、A1からA5までの範囲指定をして、a1,a3,a5のセルだけを消去したいのですが。
>>176 Ctrl押しながらA1,A3,A5を選択して消せ
どうしてもA1:A5を選択した状態から消したいなら
VBAでLockedプロパティを調べてFalseのセルだけ消せ
178 :
名無しさん@そうだ選挙にいこう:2005/11/13(日) 18:52:29
5桁の数字しか受け付けないセルの書式設定ってないですか?
>>177 回答ありがとうございます。
実は現状では、ループでLockedプロパティを見て消しています。
ところがそれだと遅いので、画面にちらつきが出てしまうのです。
ソースを見易くしたいので、できれば範囲指定で一括して消したいのですが
やっぱり無理なんでしょうかね(つд`)
>>178 入力規則
>>179 また条件後出しか
「現状では、ループでLockedプロパティを見て消しています」なんて
>>176には書いてないし
「遅い」とも「画面にちらつきが出てしまう」とも一言も書いてない
おまえが
>>176で求めたのはロックされてないセルのみ消去する方法で
速く消去する方法でも、ちらつき無く消去する方法でもない
つーか、1000セル範囲指定して0.2秒くらいだろ
アレやればちらつきも無くなるし
まあ、情報後出しに情報出してやる必要はないのでコードは伏せる
181 :
178:2005/11/13(日) 19:26:18
いけましたです。ありがとうございました。
182 :
ゴッホ ◆lkGoghDAZs :2005/11/13(日) 19:28:33
>>179 アレやってもいいけど、一つ一つ消してくより、いっぺんに消したほうがいいかも。
Dim i As Long, EachCell As Range, AllCells As Range
For Each EachCell In Range("A1:A5")
If EachCell.Locked = False Then
If AllCells Is Nothing Then
Set AllCells = EachCell
Else
Set AllCells = Application.Union(AllCells, EachCell)
End If
End If
Next
If Not AllCells Is Nothing Then AllCells.ClearContents
183 :
ゴッホ ◆lkGoghDAZs :2005/11/13(日) 19:32:09
あ、今気づいたが、i はいらなかった。失敬。
Excel2003で地球地図の中に日本と中国アメリカヨーロッパの上に棒グラフを表示する方法は無いでしょうか?
各地域の貿易収支を分かりやすくグラフにしようと思うのですが、セルのデータを変えたときにすぐに
反映させる方法がないもので・・・
【1 OSの種類 .】 WindowsXP SP2 Home
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 まったく出来ませんorz
【4 VBAでの回答の可否】 可?
【5 検索キーワード 】 Excel ツールバー ユーザー設定 頂点の編集
「図形編集」ツールバーを表示し、ユーザー設定から「頂点の編集」ボタンをツールバーに追加しようとしたのですが、ドラッグしてもボタンの追加で選択しても、ツールバーに反映されません。
他のボタンは普通にツールバーに追加できました。
別PCに入っているExcel2000では、ごく普通に追加できるのですが…
何か見落としなどがあるのでしょうか?
186 :
ゴッホ ◆lkGoghDAZs :2005/11/13(日) 23:24:50
187 :
緊急:2005/11/13(日) 23:42:15
誰かバカみたいな質問に答えてください。エクセルやろうとしたら文字入力が一切できません。なにが原因なんでしょうか?教えて!
188 :
185:2005/11/13(日) 23:43:40
>186
ありがとうございます。
バグだったのか…修正パッチなり何なりを待つしか手はなさそうですね。
190 :
ゴッホ ◆lkGoghDAZs :2005/11/13(日) 23:57:06
>>187 キーボードのケーブルが抜けたとか?
ご確認あれ。
または、IMEがおかしくなっちゃったとかですかね?
PCを再起動してみれば?
>>188 まあ、普段は見えないだけで、実際には追加できているので、
必要なときには現れるようです。
191 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 00:06:36
【1 OSの種類 .】 WindowsXP SP2 Home
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 だめです
【4 VBAでの回答の可否】 可
csvファイルをエクセルで開く場合
数字の列は数値として扱われてしまいます。
ファイルを開く際に「0001」などを文字列として認識させる方法はありますか?
また、数字の列が16個以上並んでいると数値としても
おかしな値になってしまいますが、これを防ぐ方法はありますか?
192 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 00:12:41
はじめまして。折れ線グラフに関する相談です。
以下のグラフを作りたいと思っていいます。
・数値軸:1分〜10分
・項目軸:各曜日
具体的には毎日開店から10分以内に最初の客が入るまでの時間を調べて
曜日ごとに分けて表示したいのです。
数値軸を各1分ごとに10分割したいのですができません。
どうすればできるようになるでしょうか?
目盛の設定などいろいろいじりましたが分かりません。
どなたかお教え下さい。
194 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 02:27:35
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 とくになし
セルの幅(1ピクセル)は実際には何センチ(何ミリ)なんでしょう
ピクセル単位とメートル単位は交互変換できる単位ではありません
メートルは固定長の単位であり、ピクセルは可変長の単位なので
ピクセルやポイントの実際の長さは
標準フォントの種類やディスプレイの解像度等の環境条件によって変化します
>>192 1分から10分を10分割という意図がわかりませんが…。
1分刻みに0分から10分を10分割、または1分から10分を9分割では?
後者でいいなら軸の書式設定を使って、目盛を次のように設定する。
最小値 0:00
最大値 0:10
目盛間隔 0:01
もっともこの場合、分を表す数値データを時刻(0:03、0:09など)にせず、
最初から分単位の数(3、9など)で入力しておけば、軸の目盛設定も
0,10,1で済みます。
>>191 CSVファイルをそのまま開くのではなく、空のワークシートで
データ>外部データの取り込み>データの取り込み
などを使う。
テキストファイルウィザードが起動したら、区切り文字を「カンマ」に、
列のデータ形式で「0001」や16桁以上の数を「文字列」に設定して
読み込めばいい。
>>191 [データ]-[外部データの取り込み]で列ごとに型を指定できるお
数値は指数表示されてるだけだから、取り込んでから表示形式を
「数値」にして列幅広げればいいんじゃないでしょうか。
>>198 16桁以上の数は列幅広げても意味ないです。
Excelの有効桁数が15しかないので。
16桁以上の数をCSVファイルから取り込みたいなら、
文字列にする以外方法はありません。
200 :
166:2005/11/14(月) 09:23:08
201 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 10:27:44
エクセルで
TRUNC(+C10*C42+D10*D42+E10*E42+F10*F42+G10*G42+H10*H42+I10*I42)
↑
一つのセルにこの式を作りました。
下のセル(行11)にかけ算の部分(行42)を変えずに同じ式を入れたいのです
コピーして貼り付けると勝手に(行43)になってしまいます。
(行42)のまま同じ式を入れるにはどうしたらよいですか?
教えてください。よろしくお願い致します。
203 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 11:17:20
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
201です。よく読まずにすみませんでした。
=(C10*C42+D10*D42)を
=(C11*C42+D11*D42)にしたいのです。
教えてください。
水平スクロールを、マウスのホイールボタンとキーとの組み合わせで
行う方法はありますでしょうか?ホイールボタンを押す以外の方法で
(腱鞘炎で強く押せないので)。
よろしくお願いします。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル マウス ホイールボタン 水平 左右 スクロール
水平スクロールを、マウスのホイールボタンとキーとの組み合わせで
行う方法はありますでしょうか?ホイールボタンを押す以外の方法で
(腱鞘炎で強く押せないので)。
よろしくお願いします。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル マウス ホイールボタン 水平 左右 スクロール
間違ってW投稿してしまいました。申し訳ありません。
208 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 12:51:48
>>205 VBAが否なら、Excelの設定だけでは無理だが
キー+ホイールで横スクロールさせるツールとか使えば可能だろ
そっちの話はExcel関係ないので終わり
>>208 向こうで回答付いたからこっちでは回答不要だね
210 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 15:26:22
時間の計算で
A1 B1 C1
2:00 - 2:00 = 0:00
1:00 - 2:00 = -1:00
5:00 - 3:00 = 2:00
------------------
計 1:00
という計算の中で
if構文か何かを使って、マイナスの時間になる行を
表示させずに計算にも加えない方法を教えてください。
212 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 15:38:06
>>211 >>210 > 時間の計算で
> A1 B1 C1
> 2:00 - 2:00 = 0:00
> 1:00 - 2:00 = -1:00
> 5:00 - 3:00 = 2:00
> ------------------
> 計 1:00
> という計算の中で
> if構文か何かを使って、マイナスの時間になる行を
> 表示させずに計算にも加えない方法を教えてください。
---------------------------------------------------
うまくいきません
=IF(C1>0,"",A1-B1)
当然、循環参照になっていまうのですが…。
C1だけで計算できますか?
>212
=IF(A1-B1<0,"",A1-B1)
または
=IF(A1>B1,A1-B1,"")
>>213 そういうな。本物の初心者なら、こんなもんかもしれん。
ただし>212さん。あんたは
>>1-2をよく読むように。
アンカーしか付けられない社会不適応者は答えんな。目障りだ。
アンカーしか付けないってのは
>>216みたいなやつのことね
アンカーでテンプレへ誘導してるのはちゃんとした回答だよ
少なくとも
>>1-2を守れない子にはテンプレへの誘導のみでじゅうぶん
>>215 目障りなのはおまいだけだよ。
普通は
>>7で十分。
212がそれでも理解できん超初心者かなと思ったから答えたまでのこと。
ついでに補足しとけば
=IF(A1-B1<0,"",A1-B1)
=IF(A1>=B1,A1-B1,"") ←こっちは=が抜けてたな。すまん。
の計算をするC列のセルは、書式を時刻に設定し直すように>212
はじめまして、超エクセル初心者なのですが質問してもいいですか?
書式に関する質問です。
エクセルでセルを結合して縦書きにし、国語の教科書のように右から
文字を読むようにしたいのですが、どこをどう操作すれば
出来るのでしょうか?
当方、Excel2002を使っています。
>>220 ワードを使う。以上。
エクセルでもやる方法はあるけど、いろんな意味でやるだけ無駄。
>>220 セルの書式設定→配置→方向で
>>215 質問でも回答でもないレス入れてる時点でお前が目障りだ
>>221 まあまあ。
どう使うかは本人の自由だ。
>>7を読んでわからなければ、
「
>>7を読んでもわからないので、具体的な式を書いてください」
と、テンプレ使って書けばいい。
それに対して
>>211のような答え方すれば罵倒に値するが、
>>1-2すらちゃんと読んでないんだから、
>>7も読んでないと見なして
とりあえず
>>7を読めと、アンカーで
>>7を指すのは間違ってないだろ。
IF関数の使い方すらわからないのは罪じゃないが、
質問ルールを守らずに質問するのは罪だ。
はいはい。以後スルーでよろ。
215さん、こんにちは
226 :
220:2005/11/14(月) 16:22:26
昔、特定のセルをどうにかするといきなりレースゲームが始まるという
裏技があったんですが、誰か覚えている人いますかね?
スレ違い
・・・・・・・・・・で?
231 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 20:04:15
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 合計 シート
「ファイルの中に存在する、”今作業中のシート以外のシート全て”のA1セルを合計せよ」
みたいな命令文ってありますか?
シートの数が多いのと、シート名がそれぞれ長いので、長い式になってしまうのです。
>>231 シートの数が多くても横に並んでさえいれば、たとえば
=SUM(Sheet2:Sheet15!A1)
だけで、Sheet2〜Sheet15まで全部のシートのA1セルの
合計になりますが。
233 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 20:22:00
セルの左上の角が緑になっているのは何でですか?
その列は日付欄として使っています
05/11/11のように二桁年で表示させています。
自分で入力すると角は緑にならないんですが・・・
>>231 合計なら先頭シートから末尾シートまでをSUM関数で合計して
そこからシート名無しのA1を引けば?
>>232の方法だとシートごとに式を書き換えなくちゃならないし
>>233 エラーチェック
235 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 20:45:25
教えてください。
A列に「計」って入っている行を検索して、その行のB列の値を合計したいのですが、どんな式になりますか?
VLOOKUPだとうまくいかないのですが・・。
237 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 21:52:38
ここで質問させて頂きます。
シート1に2ページ、
シート2に3ページ
シート3に4ページ
の表があるとします。
それぞれのシートのヘッダー右上に、「シート名 (そのシートのページ数/そのシートの全ページ数)
と表示させたいのです。
つまり、印刷時したあとにヘッダーの右上を見ると
シート1 1/2
シート1 2/2
シート2 1/3
シート2 2/3
シート2 3/3
シート3 1/4
シート3 2/4
シート3 3/4
シート3 4/4
となるようにしたいのです。
1シートずつ印刷すれば可能ですが、一度に全てのシートを選択して印刷すると、
全ページ数(9ページ)の中の何枚目、という表示になってしまい、これでは困るのです。
実際はシートは多量にあるため、1シートずつ印刷すると時間がかかるのです。
どうにかいい方法はないものでしょうか。
>>235 「その行のB列の値を合計」ってのがそのまま解釈していいなら
=VLOOKUP("計",A:B,2,FALSE)
239 :
名無しさん@そうだ選挙にいこう:2005/11/14(月) 22:09:54
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 罫線 改ページ
縦に長い表を作っているのですが、外枠は太線、内枠は細線で作っています。
ページが変わると、一番下の行の下の線は太線ではなく細線のままで、
次のページの一番上の行の上の線も細線です。
これでは見栄えが悪いので、「ページが変わる行のセルの線種を自動調整する」ような、
どんなプリンタでも対応できるような命令はないのでしょうか。
ファイル→ページ設定→シート
の「枠線」か、太線付きの空行を「行のタイトル」あたりで手を打つ
なんか熱いヤツがいるな・・・
ここは若い女子新入社員に窓際のヲッサンが答えるという図式の
平和なスレだと思ってたんだが
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 シート名 変更
シート名の変更について質問です。
Sheets("Sheet1").Name = "○×"
上記の"○×"のシート名にセルの値を代入する事は可能でしょうか?
自動記録でセルコピー、シート名貼付けだと、クリップボードの内容がそのまま
マクロに登録されてしまいます。
マクロ実行時のセルの値に改名したいのです。
何か良い方法が有りましたら、回答よろしくお願いします。
>>229 タイトル行が数式で、返り値が数値(あの例では日付)のときうまくいかないな。
対策は書いておいた。
244 :
205 :2005/11/15(火) 07:39:50
>>209 > キー+ホイールで横スクロールさせるツールとか使えば可能だろ
> そっちの話はExcel関係ないので終わり
レスありがとうございます、探してみます
>>242 可能だよ。
"○×"のところにRange("A1").Valueでいけるよ。
ただSheets("Sheet1")では「Sheet1」って名前のシートがないとエラーになるよ。
今表示してるシートならActiveSheet、一枚目(一番左)のシートならSheets(1)
にしてみたらどう?
246 :
242:2005/11/15(火) 08:44:45
>>245 その方法で出来ました。
迅速かつ適切なお答えありがとうございます。
247 :
229:2005/11/15(火) 11:31:49
248 :
名無しさん@そうだ選挙にいこう:2005/11/15(火) 14:04:24
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Webクエリ
外部データ取り込み>新しいWebクエリで取り込んだデータを
定期的に更新した時に更新時についでに保存するようにしたいのですが
どのような方法がありますでしょうか?
249 :
名無しさん@そうだ選挙にいこう:2005/11/15(火) 16:37:22
くだらない質問させてください。
ワークシートを3枚以上に増やしたいのですが
どうすればいいのでしょうか?
よろしくおながいします。
>>249 シートタブを右クリ→挿入→ワークシート。
ブックに最初に作成されるシート数自体を増やしたいのだったら、
ツール→全般→新しいシートのブック数。
自作フォーム上のお話です。
TextBoxが数個。ComboBoxが数個。
「クリア」ボタンを設置。
「クリア」を押下すると、TextBoxとComboBoxの中がクリアになる(消去)
と、いう風にしたいのです。
Private Sub CommandButton_Click()
Dim obj As Control
For Each obj In Me.Controls
If TypeName(obj) = "TextBox" Then obj.Text =""
Next obj
End Sub
というコードを書き、TextBoxはクリアできました。
同時にComboBox内もクリアしたいのですが
よくわかりません。
わかりづらくてすいませんがわかる方お願いします!!
252 :
249:2005/11/15(火) 17:45:28
250さんThank youです!!
>>251 条件式をorにするかelseif書けばいいじゃん
>>253 参考書片手に作業してるのですが、わかりません。
orの意味はわかるのですが、使い方がいまいち、、、。
・・・・・・・・・・で?
>>162 >>160さんと同じことで悩んでいましたが、解決しました。
大量にあったのでコピーが面倒でしたが助かりました。
質問者ではありませんが、ありがとうございました。
>>251,254
TextBoxがそれでいけるなら、
If TypeName(obj) = "ComboBox" Then obj.Text =""
を追加すればいいだけじゃね?
試してないから、知らんけど。
>>257 できました!!
今夜中に仕上げなくてはならなくて困ってました。
本当にありがとうございました。
253氏もありがとうございます!!
質問1 ユーザーフォーム内で入力する文字を規制したい。
「このテキストボックス内は日本語入力不可。
なおかつ8桁のみ。多くても少なくてもエラー。」
とかって可能ですか?
質問2 シート上ではなくフォーム上で。
ボタンを押すと「今日の日付」が入力される。
[コレテキストボックス] [押] ←コレ押すと、
↑
ここに日付がはいる。
できると大変便利なのですが。おながいします。
>>259 回答1
可能
具体的な方法はVB6のものを参考に
入力規制アルゴリズムはいろんなものがあるし
ユーザーフォームの場合、標準で拾えないイベントとかもあるけど
基本的にコードはVB6のものがそのまま使えるから自分で気に入ったの拾ってこい
回答2
押_くりっく
コレテキストボックス.てきすと = 日付
終わり
261 :
名無しさん@そうだ選挙にいこう:2005/11/15(火) 21:37:04
Excelのマクロで、現在開いているファイルを別の形式にして保存するプログラムを書こうとしています。
特定のファイルにのみ使うマクロでしたらSaveAsメソッドでそのファイルの拡張子を変更したパスを指定すれば問題ないのですが、
全てのファイルにも適応でき、かつ元のファイルと同じフォルダに保存するものにしたいです。
この場合、ファイルのパスはどのように指定すればよいのでしょうか?
>>261 ブックのPathなりFullNameなりを取ればいいじゃん
>>262 そう思いまして、
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.Path, FileFormat:=xlCSV
としてもなぜかうまくいきません。
Filenameを指定しない場合は、ホームディレクトリ(カレントディレクトリ)に保存されてしまいます。
>>263 当然だ
Pathプロパティが何を返すのかわかってないだろ
Debug.Print ActiveWorkbook.Path
を見てみろ
なぜかうまくいかないんじゃなくて、うまくいかなくて当然のことをおまえ自身がやってるの
プロパティの返した値の確認なんて、文字列や数値の場合はどんな初心者でも簡単にできるだろ
それすらやらずに「なぜか」とか言ってんじゃねーよゴルァ
それをやった上でわからないならVBAなんて弄るレベルじゃないし
と、
>>2の※に有るとおり、ここのルール守らずに質問した奴には
丁寧な解説なんて付けないことになってるので、これ以上聞き返してくるなよ
具体的なコードつか聞きたかったら、次の質問時には気を付けるこった
265 :
237:2005/11/15(火) 23:35:51
>>237です。
どうやら無理っぽいので、1シートごとに印刷することとします。
でもやっぱめんどくさいので、
「ファイルの中に存在するシートを、1つ1つ選択→印刷する」というマクロってどんな式になるのでしょう?
これが出来るだけで全然OKです。
>>264 すみませんでした…(´;ω;`)ウッウッ
>>264 いちおう自己弁護のために言っておきますと、FileNameにファイル名を入れず、Pathだけ入力すると、
ファイル名は現在のブックのファイル名が使用されるのではないかという希望的観測でした。
本当はPathとファイル名の文字列を結合して入力したかったのですが、現在のブックのファイル名を取得するメソッドが見つからなかったもので…。
いずれにせよガイドラインに違反した人間には発言権は一切ないので消えます。
269 :
名無しさん@そうだ選挙にいこう:2005/11/16(水) 09:46:27
質問お願いします
Windows98、エクセル2000です
初歩的なことかもしれませんが・・
会社関係のリストを作っているのですが
前鰍竭O汲ネどついている状態で並べ替えをすると
鰍ヘ「カ行」、汲ヘ「ユ行」の位置にされてしまいます。
これを括汲ネしの会社と一緒に昇順で並べ替えをしたいのですが
括汲フあとの文字(例えば潟jチャンネルなら「ニ」)と認識して
並べ替えをする方法ってあるんでしょうか。
並べ替えようの作業セルを作ってやれば おそらくできるだろう
>>270 といいますと、セルをもう1列作って名称部分の鰍竍汲抜き、
それを中心に並べ替えるという方法でしょうか。
やはりそれしかないのかな(´・ω・`)
>>271 まあ、VBA使えばどうにでもなるけど、
>>1-2をちゃんと守ってないからコードは書いて貰えないし
そうなると自分に出来る範囲でやるしかない
VBA使えるなら自分でコード書くのもいいが、
使えないなら作業列作ってソートだな
少なくとも標準の並べ替え機能にはおまえの望むものは無い
273 :
269:2005/11/16(水) 11:35:35
すみません、初心者なのでVBAは全くわかりません。
>>270さんの方法でやりたいと思います。
ありがとうございました。
274 :
名無しさん@そうだ選挙にいこう:2005/11/16(水) 12:54:24
エクセルの事はこのスレが一番詳しそうなので質問させて下さい
エクセルの発表って何年が最初なんでしょう?
よろしくお願いします
276 :
名無しさん@そうだ選挙にいこう:2005/11/16(水) 13:07:21
【1 OSの種類 .】 Windows 2000 SP4 & XP SP1
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 強制終了
配列数式で以下の計算式を作ったまではいいのですが、
コピーして下の行に貼り付けると、再計算は出来ても、
保存の段階でexcelが強制終了します。
{=Q4/ABS(SUM(IF($F$3:$F$491=F4,IF($T$3:$T$491=0,$J$3:$J$491),0),0))}
Win2000のノートでダメ、別のXPノートでも強制終了するので、
機種依存の可能性はほとんどなし
ファイルサイズは5M、
問題のワークシートだけ抜き出して(1.7M)試みても、同じ症状
どこ疑えばいいですか?
excel再インストール済み、ウィルスチェック済み、
HDD空き容量700M(2000),10G(XP)
>>276 ×{=Q4/ABS(SUM(IF($F$3:$F$491=F4,IF($T$3:$T$491=0,$J$3:$J$491),0),0))}
○{=Q4/ABS(SUM(IF($F$3:$F$491=F4,IF($T$3:$T$491=0,$J$3:$J$491,0),0)))}
では?
276の式では
ひとつ目の「,0」がふたつ目のIF関数FALSEの場合で
ふたつ目の「,0」がSUM関数の引数だ
俺が書き直した式は
ひとつ目の「,0」がひとつ目のIF関数FALSEの場合で
ふたつ目の「,0」がふたつ目のIF関数FALSEの場合だ
しかしFALSEは0として評価されるし、SUM関数の引数に0を入れても意味はないが問題も無いはずだ
なので原因は他にあるような気がする
数式直しても解決しなければブックをうpしてみな
他の原因が見つかるかも知れないし
少なくとも他の環境で試して問題が無ければ環境依存という結論が出る
278 :
276:2005/11/16(水) 14:37:40
>>278 R列の式だよね
とりあえず結果報告
WinXP Pro PS1a、Excel2003 SP1、Ath64FX55、DDR400 4096MB
式を491行目までオートフィルでコピー、再計算、上書き保存及び別名保存問題なし
Win2000 SP4、Excel2002 SP3、Pen4 2.8CGHz、DDR400 2048MB
式を491行目までオートフィルでコピー、再計算、上書き保存及び別名保存問題なし
Win95 OSR2、Excel97、Pen 100MHz PC100 24MB
式を491行目までオートフィルでコピーする時点でエラー発生、強制終了
式をひとつずつ491行目までコピーして、再計算、上書き保存及び別名保存問題なし
一番下の環境でちょっとバグったけど、結局式を入れて再計算も保存も問題なくできてるので
シート自体直すべき点は無いんじゃないかな?
おそらく一番下の環境でバグったのはExcelのバージョンも含めてのスペック不足だろう
Excelのバージョン上げて、PCのハードも強化してみれば?
280 :
276:2005/11/16(水) 18:19:34
>279
うお、そこまで調べてくれてありがとう!
そうです、R列の式です
うちでもExcelを97から2000にしてみましたが、
やはり、再計算は出来ても保存の段階で強制終了します
XP Pro SP1 Excel 2000 SR-1 PenM 1.1G RAM512M
うーん、RAMが少ないせいかなぁ…
以前、Excel2000を入れたとき、
問題のブックはなにも変更しなくてもいきなり強制終了したので
97に戻して今まで来たが…
ともかく、このブックが無事に動く環境もあるとわかっただけで助かりました。
もちっといろいろ切り分けて検証してみます
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】いいえ(貼り付けるだけならOK…)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Googleやヘルプでの検索キーワード ピボットテーブル 月 集計
月や年ごとに売上を集計、表とグラフそ作成したいのですが
ピボットテーブルで集計すると1日ごとの集計しか出せません。
月、年を設定する機能はありますか?
(右クリック→ウィザード、設定、オプションから見ても発見できませんでした)
YEAR,MONTH関数のセルを増やすべきなのか、あるいは他の方法か、宜しくお願いします。
月、年を設定する機能があるかどうかではなく、
必要なら月、年での集計を出せるように組めばいいだけのこと。
>>281 ピボットテーブルツールバーの左端「ピボットテーブル」ボタンから
グループと詳細の表示>グループ化
ダイアログで開始日と終了日を指定しグループ化する単位を
「月」とか「年」にする。
・・・でいいような気がする。
284 :
名無しさん@そうだ選挙にいこう:2005/11/16(水) 20:29:05
宜しくお願いします。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 index関数、match関数、lookup関数
A B C D E
1 1等 2等 3等 509
2 45612 678111 8217758
3 234566 7642211
4 921726 509
D1に当選番号を入力し、E1に番号と一致した行の等(この場合は3等)を
表示させたいのですが、どうすればいいでしょうか。
287 :
281:2005/11/16(水) 23:39:47
>>283 ありがとうございます!助かりました…
「グループ」なんて関係ない用語だと思ってしまってました
288 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 00:54:31
>>286 Sub tes()
Set unko = Range("a2:c4")
tousen = Range("d1").Value
For Each nko In unko
If nko = tousen Then
Range("e1") = nko.End(xlUp).Value
End If
Next
End Sub
絶対もっと簡単に出来るんだろうな・・
>>286 =INDEX(A1:C1,1,MAX(IF(A2:C4=D1,COLUMN(A2:C4),0)))
というのはどうでしょうか?
配列数式なので、Ctrl + Shift + Enterで確定してください。
290 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 01:30:55
【1 OSの種類】WindowsXP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】いいえ
【4 VBAでの回答の可否】 可
顧客管理リストを作成したいのですが、教えて頂けますでしょうか?
シート1には全てのデータを入力していて、
都道府県(C列)毎に、シート別の表示をしたいのです。
例えば、東京都をシート2、神奈川県をシート3…のようにです。
そして、シート1に入力すれば自動的に都道府県別シートに反映させたいのです。
(リストの都道府県の数は、合わせて20程です。)
どのようにしたらよいのでしょうか…。
292 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 09:44:49
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
の場合はブックをうpさせた方が良くないか?
VBAわからないわけだから、コード書くのにどういう情報が必要なのかすらわかってないだろうし
コードは完全に他人任せなんだからそのくらいしても罰は当たらないだろう
使わなければそれでいいし、答える側としてブックがうpされてることが邪魔になることは無いし
>>290 オートフィルタ使え
フィルタリストから都道府県名を選択すれば
その瞬間にシート1が「都道府県別シート」と同じ結果になる
別シートにして同期させると
関数でやるにしてもVBAでやるにしても滅茶苦茶重くなる
VBAで任意タイミングでの書き出しなら、まだ実用になるかもしれんが
うるせー馬鹿
オートシェイプで作成したフローチャート等を
ドラッグで括った部分だけ削除するにはどうすればいいのでしょうか?
Deleteでは消えず、行や列ごと削除すると
他の図と重なったりしてもうメチャクチャです('A`)
>>295 一口にオートシェイプで作成したと言われても、たとえばどういう
グループ化をしているかとか、条件によっていろいろ違ってくるわけで。
フローチャートの部品が全部、別々に作成されてグループ化も
されてなければ個別に選択していけば好きに消せますけど。
これ以上は
>>1-2を10回ほど読みなおしてからどうぞ。
図形描画ツールバーの「オブジェクトの選択」で選択してdel押せば済む話じゃないの?
298 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 17:58:06
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
先月分のいろいろな請求書を作っているんですが、1月になると
0月になってしまいます。どのような修正をすればいいでしょう。
=YEAR(A14)&"年"&MONTH(A14)-1&"月分のご請求金額(税込)"
A14=today()
MONTH(A14)-1をIF(MONTH(A14)=1,12,MONTH(A14)-1)
YEAR(A14)をIF(MONTH(A14)=1,YEAR(A14)-1,YEAR(A14))
出来ました。if文つかうんですね。あざーす
>>297 どんな作り方しているかによる。
それでOKな場合もあれば、思うような消し方ができないこともある。
302 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 19:33:12
月毎のシートがあって
その中の数式で例えば
9月のA1のセルを選択する所を
10月に変更すると
シートではなくファイルを探しに行こうとするんですが
何故でしょうか?
Excel97です
IF使わなくても
=DATE(YEAR(A14),MONTH(A14),1)-1
という式をどこかに入れておけば
必ず前月の末日の日付を返すので
あとはYEARとMONTHそのままでいける。
=IF(MONTH(A14)=1,YEAR(A14)-1,YEAR(A14))&"年"&IF(MONTH(A14)=1,12,MONTH(A14)-1)&"月分のご請求金額(税込)"
だとなんか長ったるしい気が・・・
別に悪いってわけじゃないけど。
>>302 ファイルを探しに行かせるような式を組んでるから
▼━ 質問のしかた ━━━━━━━━━━━━━━━━━━━━
★1 質問するときは環境や条件はきちんと書いてね。情報後出しはダメ。
★2 要望は具体例や図を使って明確かつ具体的に。
★3 質問前に
>>2-20あたりの注意書きやQ&Aも読もう。
★4 質問テンプレは必須じゃないけど、
OSやExcelのバージョンやVBAの可否など(下記テンプレ1〜4の情報)は必須。
▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・1 現行スレ内で既出の質問が無いか、ページ内検索をしよう。(Ctrl+F)
・2 図やコードを書く場合、TABや連続する半角スペースは無視されるので注意
・3 VBAコードを貼る場合は、部分的に伏せたり省略したりせずに全て貼りましょう。
・4 2回目以降の質問では名前欄に初回質問の番号を入れよう。
・5 回答内容でわからない部分があっても、すぐに聞き返さずにヘルプやGoogleなどで検索しましょう。
・6 バグ・動作上の不都合などはマイクロソフトのサポートを受けましょう。ここは技術的な質問のみで。
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ない処理も出来ます。
Excelの操作に関係ない部分は、VBスレやAPIスレなどの該当スレで質問しましょう。
・8 うまくいかなかったにしても自分でやってみたこと(組んだ数式やコード)は書きましょう。
例えエラーになる式やコードでも、何をやりたいのかを的確に把握する手がかりになります。
その上で、どううまくいかないのかを具体的に書きましょう。
エラーが出るなら、何処でどういうエラーが出るのか、
想定外の結果が出るなら、条件と想定上の結果、実際の結果などを詳しく書いてください。
※ 必要情報を書かなかった場合は、回答者が勝手に解釈して答えることもあります。
情報や条件は最初の質問時にきちんと書きましょう。
情報条件なんて聞かれてから後出しすればいいなんて思わないように。
指摘されてから書き直しても、その質問にはまともな回答が付かないと思ってください。
ここは、きちんとマナーを守ってる質問者には「・分かる人はできるだけ回答して下さいませ。」というスレです。
明記してある質問マナーすら守らない人に、丁寧な回答を付ける義理なんてありませんから。
306 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 20:21:38
ctrl+endを押したとき,以前に記入してdeleteした場所へ
移動してしまいます。
現在記入している最後の行へ移動するには
どうすればいいのでしょうか?
自分用語(以前に記入してdeleteした場所、現在記入している最後の行)ではなく
標準用語で説明しましょう。あなたの言葉は複数の解釈ができてしまいます。
それが出来ないなら、自分で調べましょう。>>ショートカットキー@ヘルプ
309 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 21:27:27
2000を使っています。
円グラフで質問です。
グラフの元になる数字をすべて0にすると、円グラフも0%と表示されるべきなのに
画面上はなぜか1%と出ます。
きちんと数値が入っているときちんとした構成比を%表示してくれるのに
なぜ入ってないと1%となるのでしょうか?
310 :
名無しさん@そうだ選挙にいこう:2005/11/17(木) 23:44:13
【1 OSの種類】WindowsXP
【2 Excelのバージョン】 Excel2002
【3 VBAが使えるか】ちょびっと
【4 VBAでの回答の可否】 可
マクロで印刷をしようとしてるのですが、activeworkbook.worksheets(1).printout
で印刷しようとするとページ設定とか設定済みのシートなのに
A3ではなくA4の紙に印刷しだして、文字化けしちゃんと印刷できません。
マクロでなく印刷するのには、印刷ボタンを押すだけで普通に印刷できるものなのですが
マクロの場合はなにかちゃんと設定してあげないと印刷できないものなのでしょうか?
> マクロの場合はなにかちゃんと設定してあげないと印刷できないものなのでしょうか?
それを聞く前に、ちゃんと設定すれば指定通りに印刷されるかくらい試せよ
A3指定は「PageSetup.PaperSize = xlPaperA3」だ
だが、文字化けってのは環境の問題じゃねーの?
コードをどう間違っても文字化けなんかしないから、マクロ以外に原因が有るような気がする
例え通常印刷が正常だとしてもね
312 :
名無しさん@そうだ選挙にいこう:2005/11/18(金) 00:53:11
初心者板でも質問中なのですが、レスがないので…こちらでも
質問させてください。
ピポットテーブルについて質問です。
行のフィールドに商品名を入れて、データフィールドに平均や
データの個数、最大値など、5つほど項目を入れます。
すると個々の商品について5つずつ縦にデータ名とその数値が並びます。
これを、データ名を横に並べるようにしたいのですがうまくいきません。
家にあるエクセル97ではデータという項目をドラックして横にすると
並べ変わるのですが、会社のXPだと、これができません。
97にできて、XPでできないとは思えないのですが、どうすればよいのでしょうか。
お分かりになる方、どうかよろしくお願いいたします。
A │ B
────────────
小沢としお │川
藤井克己 │月
秋好賢一 │山
米原秀幸 │
佐渡川準 │
馬場民雄 │
田口雅之 │
青池保子 │
秋乃茉莉 │
細馬信一 │
海月志穂子 │
氷栗優 │
B列がNGワードのイメージで
A列の中にNGワードが含まれていると対象のセルの書式を変えたいです。
上記の例だと佐渡川準と海月志穂子のセルが変わる感じ。
FINDでがんばったが・・・_| ̄|○
なんかいい方法教えてください。
315 :
名無しさん@そうだ選挙にいこう:2005/11/18(金) 11:40:52
【1 OSの種類】Windows2000
【2 Excelのバージョン】 Excel2000
【3 VBA】 使えます
日付と時刻が別のセルにある場合、
今年の西暦を引っ張ってきて、西暦と日付と時刻を連結して表示させる方法は
あるでしょうか?
例)
A1=11/18、 B1=11:25
C1に出力 2005/11/18 11:25
もし不可能なら、西暦のみを引っ張る方法があればお教え下さい。
>>315 A1セルに入っているのが今年の日付なら
=TEXT(A1,"yyyy/mm/dd")&" "&TEXT(B1,"hh:mm")
A1セルの入っているのが何年の日付か確定してないなら
=TEXT(TODAY(),"yyyy/")&TEXT(A1,"mm/dd")&" "&TEXT(B1,"hh:mm")
317 :
315:2005/11/18(金) 13:01:59
できました。たいへん感謝いたします。
>>314 うざいテンプレがないのが非常によいから教えてやる。
条件付書式、数式が =OR(ISNUMBER(FIND($B$1:$B$3,A1))) 書式設定
可哀相な子
答えられないこともないけどな
例えば318の式だと、NG条件範囲に空欄があると、A列全てで条件付き書式が適用されてしまい
正常に動かす為には、NG条件数が増減する度に数式を書き換えなくてはならないので、
範囲をB1:B3と条件数ぴったりに合わせずB1:B10と余裕を持たせても対応出来る式とか
つ =NOT(AND(ISERROR(1/(FIND($B$1:$B$10," "&A1)-1))))
【1 OSの種類】WindowsXP
【2 Excelのバージョン】 Excel2000
【3 VBAが使えるか】いいえ
初歩的なことかもしれませんが、よかったらご教授下さい。
該当B列の文字列に”適”の文字が含まれていたら、
C列の値に+1して出力する、
というやり方です。
B1 C1 D1
不合 10
不 10
適した… 10 11
不 10
324 :
323:2005/11/18(金) 17:46:35
ずれたので修正
B1 C1 D1
不合 10
不 ... ..10
適した… .. .10 ........11
不 .......10
325 :
名無しさん@そうだ選挙にいこう:2005/11/18(金) 17:52:25
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 文字 桁数 置換
一応スレ内は置換で検索かけました。
指定セル内の文字列を以下のように置換できますでしょうか?
先頭からX桁〜Y桁数まで置換。
末尾からA桁〜B桁数まで置換。
具体例
先頭から6桁目〜16桁目をAAAで置換。(すべて同一行です)
Before
ABCD 1999年11月13日 XXXXXX
EFGH 2002年12月10日 YYYYYY
IJKL 2005年10月22日 ZZZZZZ
After
ABCD AAA XXXXXX
EFGH AAA YYYYYY
IJKL AAA ZZZZZZ
初歩的な質問とは思いますがよろしくお願いいたします<(_ _)>
>>323-324 =IF(ISNUMBER(FIND("適",B1)),C1+1,"")
>>325 =REPLACE(A1,6,11,"AAA")
今度からはヘルプも検索してね
第三引数の11は「終了位置(16)-開始位置(6)+1」
327 :
名無しさん@そうだ選挙にいこう:2005/11/18(金) 17:58:19
【1 OSの種類 .】
【2 Excelのバージョン 】 Excel2002
並び替え機能でですね、
土 月
金 水
月 を 木
水 金
木 土
じゃなくてない曜日は空欄に
月
水
木
金
土
みたいにやりたいんですけど
どなたか教えてくださいませんでしょうか。
>>327 標準の並べ替え機能では出来ない
VBAなら出来る
VBAが使えるかどうかも、VBAでの解決の可否も書いてないので
>>2※に従って
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
と解釈し、「VBAで出来る」という情報だけに止めます
329 :
名無しさん@そうだ選挙にいこう:2005/11/18(金) 18:04:07
>>328 レスありがとうございます。
VBAはできます。
330 :
327:2005/11/18(金) 18:06:06
しばらく考えてみます。
どうもでした。
331 :
323:2005/11/18(金) 18:07:39
>>326 ありがとうございます^^
ヘルプ見ました。
わかりにくいという昔の印象で
ヘルプを見るという習慣がなかったのですが
検索をかけたらすぐに引っかかりました・・・反省します^^;
お手数おかけしました。
333 :
332:2005/11/18(金) 18:38:22
あ、325=332です^^;
スレ汚し失礼
A1×B1=C1
A2×B2=C2
となるように、つまりA列×B列=C列
となるようにするにはどう入力すればいいですか?
>>334 =A1*B1をC1に入力、とか言う話じゃないよね?
>>335 それはわかるのですが・・・
A列に数値入力
B列に数値入力
A列とB列の積が自動的にC列にでてくるようにしたいのです。
C1に=A1*B1を入れる
コピーする
C列全体を選択する
ペーストする
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 ぜひ
( I4の値 + I5の値 ) を ( E4の値 + E5の値 ) で割ったものを 四捨五入した結果を L4に格納する
をVBAであらわすとどうなるでしょうか?
よろしくお願いします。
>>336 5行目まで
>>335の式を入れておけば、それ以降は自動で保管される
>>7にあるようにIF関数を使えば、A列・B列に入力するまで値を返さない式も組める
式を入れずに積を返したいならVBAのChangeイベントでできる
>>338 四捨五入以外の部分はこうだ
[L4] = ([I4] + [I5]) / ([E4] + [E5])
VBAでの四捨五入はいろいろ方法があるからそれぞれの特性を調べて好きなの使え
Int、CLng、CByte、Format、Round、WorksheetFunction.Roundなどなど
>>341 ありがとうございます。
数式バーに、=INT((I4+I5)/(E4+E5)) といれて記録したら
Range("L4").Select
ActiveCell.FormulaR1C1 = "=INT((RC[7]+R[1]C[7])/(RC[3]+R[1]C[3]))"
と出ましたが、このRとCを操る自信はまだないので、なんとか I4 I5 E4 E5 を使った式に
ならないでしょうか?
> 【3 VBAが使えるか .】 はい
の奴が、なんでこんな質問するんだ?
「使えるか」の意味が食い違っているのかも
「理解してるか」と「利用可能な環境」とか
やっぱりRoundを使うことにしました。
これで電卓の結果と同じになりました。
Range("L4").Select
ActiveCell.FormulaR1C1 = "=Round((RC[7]+R[1]C[7])/(RC[3]+R[1]C[3]),0)"
でうまくゆきました。
>>343-344 プログラムに組んで計算したいものがあってVBAにトライしましたけど、エクセルほとんど
やったことないのでなんか他の人にあたりまえのところでとまどっているみたいです。
こんかいは上のRCでうまくいきましたが、I4やI5を使った式もわかるととても助かるので
I4やI5を使った式も可能だったら今回だけでも教えてくれませんか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 マクロ初心者入門の本を一通り読みました
シート1に、縦に2万行ほどある品目に対して、横に仕入れ業者ごとの値段が入っています。
業者名は品目によって2社〜5社あって、品目ごとに全く変わります。
A列が品目コード、B列が品目名
C列には業者1の単価、D列は業者1の名前
E列には業者2の単価、F列は業者2の名前・・・・と
品目ごとに、業者名のアイウエオ順で左から並んでいます。
単価未設定の業者には0円が登録されています。
A B C D E F
13248 10cmの金板 1500 ア工業 450 イ工業 ・・・
13249 ゴムパッキン 70 ウ製作所 150 エ製作所 ・・・
13250 ネジ 50 イ工業 0 オ工業
こんな具合です。この状態からシート2に、
0円の業者を無くして、品目ごとに値段が安い方から左に並べたいのです。
A B C D E F
13248 10cmの金板 450 イ工業 1500 ア工業 ・・・
13249 ゴムパッキン 70 ウ工業 150 エ製作所 ・・・
13250 ネジ 50 イ工業
「一番安い値段・業者名を一番左に」まではできたのですが
「二番目に安い値段をその次に」のやり方がよくわかりません。
if文を重ねすぎて全くワケがわからなくなってしまいました・・・
どなたかご教授お願いします。
347 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 01:24:39
>338
Range("L4").Formula = "=Round((I4+I5)/((E4+E5)),0)"
348 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 07:20:08
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
A2:2005/11/18
のようなセルに対して
B2:=YEAR(A2)
のような関数を入れて 2005 を抽出したいのですが
1905/6/27 のように表示されてしまいます。
バグでしょうか? 解決法があればお願いします。
>>348 バグでもなんでもありません。
セルB2の表示形式が日付仕様になっているからです。
書式>セル>表示形式で「標準」に戻せば2005と表示されます。
350 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 13:48:26
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel 文字 色を変える
A1セルに入力されている文字によって
B1セルに入力されている文字色を変えるということは
VBAを使わずに出来ないでしょうか?
>>350 VBA使わなくても条件付き書式でできる
352 :
350:2005/11/19(土) 13:59:00
>>351 dクスです
指摘されて「条件付き書式」でぐぐったら分かりました。
条件付き書式は普段使っていましたが、数式による書式変更はやった事が無かったので
分かりませんでした_| ̄|○
353 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 15:58:31
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】(ほんの少し)必要であれば勉強します。
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 excel マクロ 自動ログイン
質問させていただきます。
エクセルについているVBAを使用し、
InternetExprolerを起動させ、
特定のセルのURLに遷移し、
ユーザアカウントとパスワードをフォームに自動入力させ、ログインする。
といったようなマクロ組みたいのですが、ご教授お願いします。
目的としては自分の作成したサイトにログインのする際のテストに用いたいのですが、
様々なユーザを想定して違ったアカウントで試験したいので入力するのが大変なので。
エクセルからそのアカウントとパスの一覧から指定のユーザでログインしたいのです。
また、似たような機能がありましたらそちらでも結構です。
説明がわかりにくくてスミマセンが、よろしくお願いいたします。
>>353 >>2 ▼━質問時の注意・決まり事━━━━━━━━━━━━━━━━━━━━
・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ない処理も出来ます。
Excelの操作に関係ない部分は、VBスレやAPIスレなどの該当スレで質問しましょう。
質問内容は「VB言語での自動ログイン」であり、Excel関係なし
因ってスレ違い
自動ログインする方法が解った上で、
シート上の一覧からユーザアカウントやパスワードの
文字列を取得する方法が解らなかったらまた来ましょう
そこだけはExcelの分野ですから
お早い返信に感謝いたします。
テンプレートに記載してあったにもかかわらずスミマセンでした。
VBスレで自動ログインのみの質問をしてきます。
ありがとうございました。
356 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 16:49:58
357 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 17:28:51
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】使えません、
C列の値を監視して、たとえばC30に"×"が入力されたらA30の値を
D50(固定セル)に出力するという方法を考えています。
ちなみにC列の監視範囲はシートによってまちまちです。
あれば教えて頂きたいです。VBAが必要ならお書き下さい。解釈します。
358 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 17:45:24
>>357 VBAが必要。
Worksheet_Change以外の方法はちょっと思いつかない。
コードは情報が少なすぎるので書くのが難しい。書ける人いたら任せます。
Worksheet_Changeでぐぐってください。
359 :
357:2005/11/19(土) 19:00:28
361 :
名無しさん@そうだ選挙にいこう:2005/11/19(土) 21:22:09
24時間を超える時間、A1=150:20 などをB1に150.33 の形で表示させたいのですが、
=A1*24 (両方セル形式は[h]:mm)
でできません、どうしてでしょうか?
362 :
361:2005/11/19(土) 21:23:17
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
です。
>>361 >どうしてでしょうか?
B1セルは標準、もしくは数値の表示形式にしなくちゃいけないから
364 :
361:2005/11/19(土) 21:48:55
低レベルですみません。助かりました。ありがとうございます。
Excelでの日時データの扱いってのはつまずく人多いからな
わかっちゃえばなんてことないんだけどね
例えば
>>316なんかも半分わかってないだろう
シリアル値がどういうものが理解できていれば、3行目の式は
×=TEXT(A1,"yyyy/mm/dd")&" "&TEXT(B1,"hh:mm")
○=TEXT(A1+B1,"yyyy/mm/dd hh:mm")
と書くはずだから
×が間違いというわけじゃないが、シリアル値を完全には理解してないのは確かだろうな
366 :
名無しさん@そうだ選挙にいこう:2005/11/20(日) 01:42:25
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
オートフィルタを使ってこんな感じの表を作りました。
(▼はドロップダウンです)
A B C
1 日付▼ 名前▼ 売上▼
2 1月1日 いちろう 1000
3 1月3日 じろう 500
4 1月7日 さぶろう 400
5 1月8日 じろう 1500
・
・
ここで全然関係ないセル(例えばE2セルあたり)に名前のドロップダウンを
設置するためにはどのようにすればいいのでしょうか?
教えてください。お願いします。
>>365 >シリアル値がどういうものが理解できていれば、3行目の式は
>×=TEXT(A1,"yyyy/mm/dd")&" "&TEXT(B1,"hh:mm")
>○=TEXT(A1+B1,"yyyy/mm/dd hh:mm")
>と書くはずだから
シリアル値がどういうものか理解できていれば、○の式だと
答えが違ってくる可能性があるくらいのことはすぐにわかるはずですが?
たとえばA1、B1のどちらかが、NOW()関数を使って書式で日付または
時刻だけを表示しているような場合。
要するにA1のシリアル値が小数点以下の部分を含んでいるか、
またはB1のシリアル値が整数部分を含んでいる場合、>365の
主張する式では、このケースでは正しい答えが出ない。
>316は不恰好に見えても確実に正しい答えが出る。
どちらが有効かは自明。
質問がちゃんと読めてないようだなw
now()を使えば自動的にyyyy/m/d h:mm形式になる
それを任意にyyyy/m/dやh:mmと表示させてるくらいなら315みたいな質問はしないだろうな
それに今回は質問者自身が「日付と時刻が別のセル」と明記してるので
> NOW()関数を使って書式で日付または時刻だけを表示しているような場合。
といことは無い
質問者が書いてないことまで考慮したらほとんどの回答にケチつけられるし、
もっといろんな状況を考慮すれば、それこそ316の式だって「確実に正しい答えが出る」とは言いきれない
つまり
質問者が書いた情報を元にした回答
→
>>316、
>>365共に正解
質問者が書いていない情報まで考慮した場合
→
>>316、
>>365共に不正解
因みに「日付と時刻が別のセル」ではなく、ある日時セルの日付とある日時セルの時刻から日時データを返す場合は
=TEXT(INT(C29)+(C30-INT(C30)),"yyyy/mm/dd hh:mm")
整数部は日付で小数部が時刻というシリアル値の特性を理解していればこうなる
もちろんこの式も場合に因っては通用しないが
> NOW()関数を使って書式で日付または時刻だけを表示しているような場合。
という単一の仮想状況可では問題なし
370 :
367:2005/11/20(日) 11:32:13
>>369 ていねいな説明ありがと。
367でNOW関数を例に出したのは、いったん日付や時刻の
表示形式を指定してしまったセルでは、それを標準に戻さない
限り、NOW関数を使っても日付や時刻にしかならないから。
(この場合は、通常のNOW関数の表示にはならない)。
以前、仕事先で初心者さんが実際にやった例です。
念のため、書き添えておきます。
>>369 ところで>316の式で正しい答えが出ないケースって
どういう場合ですか?
考えてみたけど、日付や時刻が文字列だった(要するにシリアル値
じゃなかった)という場合しか思いつかなかった。
よろしければ教えてください。
372 :
名無しさん@そうだ選挙にいこう:2005/11/20(日) 11:59:01
文字列の場合は問題ないんじゃね?
つーかこの話もうやめれ。
>>366が放置されて(´・ω・)カワイソス状態だ。
ってことで終了。以後正常進行へ。
漏れは解らなんので、なにやら難しい話してるお二人が答えてやってくれよ。
373 :
名無しさん@そうだ選挙にいこう:2005/11/20(日) 14:20:59
>>372 なら答えてやれよ
俺は意図がわからんので回避するけど
>>366 オートフィルタじゃなくフィルタオプションを使って、
検索条件を置くセルをE1とE2にする。E1には「名前」と入力。
E2セルの内容は、入力規則を使ってドロップダウンで選べるようにする。
これで近いことできるんじゃあるまいか。
もっとも、これだとB列とE2セルは連動しないけど。
375 :
名無しさん@そうだ選挙にいこう:2005/11/20(日) 21:59:47
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002 SP3
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 散布図 線
散布図を作ろうとしたのですが、今回のファイル作成からなのですが、なぜか散布図の
プロット間をつなぐ線が表示されなくなりました。データ系列のプロパティを確認すると
繋ぐ設定になっているのですが、実際には表示されません。
それまでのファイルのグラフはきちんと表示されています。
ためしに近似直線を引こうとすると、これは表示されます。
よろしくお願いします。
色が透明だったり
【1 OSの種類 .】 Windows XP → Windows 2000
【2 Excelのバージョン 】 Excel 2003 → Excel 2000
【3 VBAが使えるか .】 たぶん少しなら
【4 VBAでの回答の可否】 可
実験データのインデックスを WinXP/Excel2003 で作り、
そこから各実験データにリンクを貼っていたのですが、
Win2000/Excel2000 の環境に持ってくると、
↓のURLにあるような問題でリンク切れになってしまいます。
http://support.microsoft.com/kb/418119/JA/ (保存したときにフォルダの区切り記号が変更されてしまう)
対処法として、参照先のデータとインデックスを同一フォルダに置く、
Excel2000でフォルダの区切り記号を変更してやるといった方法が
提示されているのですが、データ数が既に250を越えているため、
かなり面倒くさいように感じてしまいます。
リンク先の編集を一括でするような方法はありますでしょうか?
>375
データが一行おきに空白行だったり
379 :
名無しさん@そうだ選挙にいこう:2005/11/21(月) 11:26:42
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
入力時、カーソルキーを押してセルの右端になったら、それ以上はカーソルが
移動しないように(カーソルが欄外にはみ出ないように)するにはどうしたらよいのでしょうか。
380 :
375:2005/11/21(月) 12:49:42
納得できない解決策ですが、一度報告します。
グラフ化する元のデータが1行3列を結合したセルの場合、プロット間を線で結ぶことができてませんでした。
1行1列のセルにデータを移してグラフ化したら、きちんとプロット間を線で結ぶことができました。
こういう仕様なのですか?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい(まだ初めて1ヶ月)
【4 VBAでの回答の可否】 可
1フォームより入力
↓
2シートに反映(自動入力)
↓
3以後上記で入力したセルをロックしたい。
の、3ができません。
最初からロックがかかってしまうか、ロックできないかに
なってしまいます。
条件式で「〜したらこのセルとこのセルをロック」
みたいな感じです。
ボタン作って入力後押したらロックがかかるってなってると
便利です。
わかりづらくてすいません。
だれかご助言を。
>>380 元のデータの系列のXの値、Yの値をうまく設定すればいい
>>379 チョット違うけど
フォントをMSゴシック11ポイントあたりに設定
入力規則の長さ指定で=CELL("WIDTH",セル)
384 :
名無しさん@そうだ選挙にいこう:2005/11/21(月) 14:58:19
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
おしえてください。 Excelで、セルにコメントを挿入した際、
セルとコメントを結ぶ矢印線が描かれますが、これを消したり、直線にしたりできるんでしょうか?
385 :
379:2005/11/21(月) 20:41:04
>>383 お答えありがとうございます。
データの入力規則→設定→「入力値の種類」を「文字列(長さ指定)」までは分かったのですが、
=CELL("WIDTH",セル)
がよくわかりませんでした。
386 :
名無しさん@そうだ選挙にいこう:2005/11/21(月) 21:22:10
>381
データが入力されたらそのセルをロックしシート保護
Sub test()
Dim Cell As Range
Application.ScreenUpdating = False
ActiveSheet.Unprotect
For Each Cell In ActiveSheet.UsedRange
If Cell.Value <> "" Then
Cell.Locked = True
End If
Next
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Application.ScreenUpdating = True
End Sub
387 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 00:10:33
【1 OSの種類 .】 WindowsXP Pro
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Googleやヘルプでの検索キーワード
メニューバーが表示されなくなってしまいました
ヘルプには「メニューバー自体を非表示にする事はできない」とあるのですが
メニューバーそのものが非表示になった状態です(本来メニューバーのあるべき所には「全画面表示」のアイコンがあるのみ)
このため、設定変更も不可能で途方に暮れている所です。助力おながいします
389 :
387:2005/11/22(火) 00:55:56
390 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 13:13:59
ヲマイら
マクロパスワード解除ソフト何つカットル?
こういうのは無視無視。
どうせ他人が作ったブックやアドインのマクロパスを
不正に解除したくて聞きに来てるだけなんだから
本当に困ってるなら、有償の解除サービスがあるからそこに頼めと
おまえ等、踊らされて解除ソフトを答えたりするなよ
人力総当りに決まってる
ヤマカンに決まっている
やっぱ神頼みだろ
395 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 14:03:56
パスワードっていやぁ、作者の生年月日にきまってるからな。
それでも無理なら
>>392-394
小人さんにお願いする
397 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 14:52:41
で、小人がヤマカンとか神頼みで解読する・・・・・と
完璧だな。
399 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 16:45:06
完璧だから、誰か
>>384 教えて。(´・ω・`)
【1 OSの種類 .】 WindowsXP Pro
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
B列に絶対値r、C列に偏角θ[°]のデータがあって、
これのrcosθ、rsinθの値をD、E列にまとめて出力したいんですが、
どうすればいいでしょうか。
>>399 標準のコメント機能では無理
自分でコメント機能を作ればどうにでもなるけど
>>399 たぶん無理だと思う。
セルの上に透明なラベルを貼って、マウスムーヴイベントで、とか・・・。
A2以降の総和をA1に表示したいのですが、
A列はどんどんデータが増えていくんでその都度参照範囲を変えるのがめんどくさいんで
A2以降データがあるところまでの総和とするにはどうすればいいんでしょうか?
>都度参照範囲を変えるのがめんどくさいんで
変更する必要なし。
=SUM(A2:A65536)
405 :
403:2005/11/22(火) 19:41:24
>>404 贅沢言っちゃいけないけどスマートじゃないなぁ・・・
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 連番、row関数
A B C D
1 01 02 03
2 数学 ○
3 英語 ○ ○
4 国語 ○
↓
A B C D
1 01 02 03
2 数学 1
3 英語 2 4
4 国語 3
上の表の○を、このように連番に変換したいのですが、
良い方法があれば、教えて頂けませんか?
>>405 SUM関数は範囲に空セルを含めても正しい答えが出る仕様なんだから
その仕様を理解して利用するのが一番スマート
範囲可変式にする必要の無い関数で範囲可変式組む方が余程スマートじゃないなぁ・・・
408 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 20:02:43
>>405 テンプレも書いてないのに贅沢言うな
つか普通によく使うスマートな方法だと思うぞ
A列下部に他のデータが入るとかなら他に方法があるが、
おまえがVBA使えるかどうかもわからんし、どんなワークシートを使ってるかもわからんから答えようがない
情報後出しはするなよ
つかとっとと消えろ
409 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 20:11:29
Excel2003のVBAについてです。
Microsoft Excel Objectsから、
標準モジュールにあるFunction関数を呼び出したいのですが、
実行すると「Sub または Funcitonが定義されていません」
というエラーメッセージが表示されてしまいます。
どう記述すればいいんでしょうか?
現在はこんな感じで書いてます。
■呼び出し元(Microsoft Excel Objects) -----------------------------
Sub
msgbox Fun1
End Sub
■呼び出し先(標準モジュール) -----------------------------
Private Function Fun1()
End Function
よろしくお願い致します。
エクセルのファイルをコピー不可、印刷不可とかって設定可能?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ttp://pasokoma.jp/bbs9/lg287982.html と全く同じ症状で困っています。
グラフを作成するとy軸の文字列が途中で切れて表示されてしまいます。
バージョンの違うエクセルで開くと全部表示されます。
OfficeOnlineや上の掲示板でも聞きましたが、回答が得られていない&
少し急いでいるのでよろしくお願いします。
>>409 PrivateじゃなくてPublicね
>>410 コピー規制はExcelファイルとして開く前の話なので
Excelの問題ではなく、OS側のファイル操作の問題
印刷規制はVBA使えば出来そうだけど、
>>1-2のルールに従ってないから自分で調べろ
>>411 「急いでる」というのは、マルチをする上での言い訳にはならない
413 :
411:2005/11/22(火) 21:20:31
うん
でもマルチするってことは、質問した場所に「回答を期待していない」ってことでしょ
「そういうつもりじゃない」といくら口先で言っても、取った行動にそういう気持ちが表れてるので
期待していないという期待に応えて、質問には答えないでおこう
415 :
411:2005/11/22(火) 21:43:04
本当に急いでいるんで答えてくれない人の相手したくないんです。
誰か分かりませんか?
416 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 21:59:36
マルチするような人の相手したくないんです。
マジで消えてくれませんか?
417 :
411:2005/11/22(火) 22:02:33
「マルチ」の定義にもよりますが‥
上記2箇所が比較的流れている様子(OfficeOnlineでは新たに9件、
上の掲示板では18件の質問が寄せられ、答えの分かる質問には
何らかの反応がある)から「回答が得られない」と判断し、
こちらで伺った次第です。
ちなみに415は私ではありません。
が、概ね同意です。
分かる人で、答えても良い方がいらっしゃれば
よろしくお願いします。
419 :
名無しさん@そうだ選挙にいこう:2005/11/22(火) 22:03:28
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 Excel RIGHT 日付表示
たとえばA1013000520051122 というコードで、右8桁が日付を表しているんですが、
この文字列から右8桁を取り出し2005/11/22という表示に変えて違うセルに出力するには
どうしたらいいんですか?
>>419 こんなんとか
TEXT(RIGHT(A1,8),"0000""/""00""/""00")
日付型にしたいときは更にDATEVALUE
>>417 死んじゃえ
421 :
419:2005/11/22(火) 22:19:38
422 :
名無しさん@そうだ選挙にいこう:2005/11/23(水) 00:52:17
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
ピボットテーブルを作って範囲選択し、グラフを作ろうとしたんですが、
グラフウィザードが表示されずにいきなり新しいシートにでっかいグラフが作成されてしまいました。
サイズの調整とかも全くできないんですが、ピボットテーブルから作ると必ずこうなってしまうんでしょうか?
普通にセルから範囲選択しグラフを作るようにはできないでしょうか
>>422 ピボットテーブルから作ると、ピボットテーブルというやや特殊なグラフに
なります。そして通常はグラフシートに作成されます。
基本的にはそれほど通常のグラフと変わりありませんが、いくつか
制限があったり、逆に普通のグラフではできないピボットグラフ特有の
機能もあったりします。
グラフ自体をグラフシートから通常のワークシートに移動することは
可能です。この場合はグラフメニューから「場所」を選び、「オブジェクト」
でシートを指定します。
また、グラフ種類の変更も通常と同じ操作で可能です。
424 :
名無しさん@そうだ選挙にいこう:2005/11/23(水) 11:41:25
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
Excel2003 VBAについてです。
多次元配列内の値を残したまま2次元目の要素数を追加するには
どうすればいいんでしょうか?
下記のような場合、「a」を残したまま要素数を増やそうとすると
「インデックスが有効範囲にありません」とエラーになってしまいます。
Dim tazigen() As String
ReDim tazigen(1,1)
tazigen(1,1)="a"
ReDim Preserve tazigen(1, 2)
425 :
424:2005/11/23(水) 11:44:29
すみません。上記の質問ですが、
試行錯誤の上なんとか解決できました。
スルーでお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 なるべく否
VBAのEvaluateメソッドのようなワークシート関数はありませんか?
引数に指定した文字列を、数式として計算した結果を返す関数を探しています。
「条件に応じて計算式を変える」という事をやりたいのですが、
・ 一つ一つの式が入力制限以上の長さを持っているため、IF文が使えない。
・ データ数が多いため、「全ての計算式で計算しておいて、結果をHLOOKUP関数等で選び出す」ともたつく。
・ VBAでユーザー定義関数を作ったら計算速度がかなり遅かった。
ため、前述の関数がないか探すに至りました。
もし、他に解決手段があるのであればその方法でもよいです。
> VBAのEvaluateメソッドのようなワークシート関数はありませんか?
無い
> もし、他に解決手段があるのであれば
いくらでも有りそうだが、具体的な計算内容が全く書かれてないのでなんとも言えない
どういう計算をしているのか全て(条件と条件別の式も全て)書くか、
もたついても遅くてもいいから、とりあえず結果が出せる状態のブックをうpするか、
ここでの質問を止めるか
どれでもお好きな道をどうぞ
428 :
名無しさん@そうだ選挙にいこう:2005/11/23(水) 13:30:18
わかりました。
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
VLookUpの対象(人名)が1000を超えていて、同姓同名が何組かあります。
そこで、対象が複数ある場合は、エラーを返すとかってできないでしょうか?
>>429 VLOOKUP自体で、対象値が複数ある場合にエラーを返させるのは仕様上無理だが
COUNTIFでも使って対象値がいくつ有るかを返しその結果を条件にIF関数でも使えばいい
COUNTIFの結果が1の場合はVLOOKUPの結果を返し、1以外の場合はエラーを返させると
COUNTIFやIFの使い方はヘルプ参照
関数なんてのはひとつじゃ本当に限定的なことしか出来ない
いくつかの関数を組み合わせて数式を作るのはExcelを表計算ソフトとして使う第一歩みたいなものだな
表作りやちょっとした計算なんてワープロでも出来るし
431 :
429:2005/11/23(水) 16:52:36
>>430 なるほど。
勉強になります。ありがとうございました。
432 :
400:2005/11/23(水) 17:40:52
表のデータが計600個以上あるんですが、
こういうのをまとめて計算することってできますか?
>400
まとめてってのがよく解らないのだが、
B1,B2…にr1,r2,…
C1,C2…にθ1,θ2…
とデータがあり、
D1,D2…にr1cosθ1,r2cosθ2,…
E1,E2…にr1sinθ1,r2sinθ2,…
となればいいってこと?
それとも、VBA回答が可となってるからもっと複雑な事をやってるのか?
>>432 B1*SIN(C1/180*3.14)でまとめて数式をコピペ
435 :
400:2005/11/23(水) 19:43:07
>>433 そうです。
最初に書くべきことを今更で申し訳ないんですが、
B C D E
2 r θ rcosθ rsinθ
3 200 -72
(ry
200 193 89
こんな感じです。
うーん、超がつくほど初心者レベルだが、極座標直交座標変換って、いかにも大学のリテラシかなんかぽい上でそんなのだったらここにはこないような希ガスるがまあ詮索はすまい。
>434を参考にすればよいが、
>435なら、
D3に=B3*sin(radians(C3))
E3に=B3*cos(radians(C3))
以下コピペ
三角関数は°じゃなくてラジアンが単位だから、変換する必要がある。
π/180をかければよいのだが、radians()でExcelがやってくれる。
あと、3.14と即値をかかずにPI()という関数もあるから。
437 :
400:2005/11/23(水) 20:08:31
座標変換が分からんわけじゃなくて、
コピペ→書き換えで100個200個とやるのが面倒なんで。
やっぱり地道にやるしかないですか?
ダメだこいつ
>>437 縦に規則的にならんであるのなら100、200ぐらいたいした手間ではないと思うが?
セルの右下つかんで下にのばすだけなんだから。
それを何とかしたいと言う話?
>セルの右下つかんで下にのばす
範囲選択してどうやるんですか?
441 :
名無しさん@そうだ選挙にいこう:2005/11/23(水) 21:03:02
エクセル2003なんですけど、
例えばA1:A30まで列幅70ピクセル、行幅18ピクセルで
A31以降は列幅90ピクセル、行幅25ピクセルでにしたい時はどのように操作すればいいのでしょうか?
図のリンク貼り付け
>>441 まず行幅(行の高さ)は1〜30行目と31行目以降で変えても
まったく問題ない。通常の行の高さを変える操作でよい。
次に列幅。同じ列内に幅の異なるセルを置くことは通常できない。
どうしてもやりたければ、A31以降は隣のB列のセルと結合して
つじつまを合わせるしかない。
※A31とB31を結合しても、そこに入力した値はA31セルのものになる。
すいません・・・
>>346です。
3日たっても回答がもらえなかったので
質問し直します。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 少しだけ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 VBAの初心者用の本、検索で「FIND 」「INDIRECT」など
A B C D E F G
タコ 100 あ社 90 い社 110 う社
イカ 90 あ社 110 い社 120 う社
マグロ 150 あ社 140 い社 150 う社
こんな風にシート1にA列に品名、
B列にはあ社の価格、C列にはあ社の社名
D列にはい社の価格、D列にはい社の社名と、
左から会社名の50音順に価格、社名が交互に並んでいます。
品名は10000行くらいあります。
この状態からシート2に
A B C D E F G
タコ 90 い社 100 あ社 110 う社
イカ 90 あ社 110 い社 120 う社
マグロ 140 い社 150 あ社 150 う社
値段の安い方から順にシート1と同様左から「価格」「業者」の順で並べたいのです。
色々な方法を試したのですが
価格が重複している場合に業者名がうまく呼んで来れなかったりして
うまくいきません。
どなたかわかるかた、教えてください。
>>444 > うまくいきません。
>>2の・8
まあ、何をやりたいかは解るけど
一応ルールなんで自分で書いたコードをここに書け
エクセル2002SP3使用です。
エクセル上にテキストボックスを配置しているとき、Ctrlキーを押しながら選択していくと、複数テキストボックスを選択状態にすることが出来ます。
これを、パワーポイントでするように、範囲指定で選択する方法はないのでしょうか?
セルで一定範囲を選択し、そこから複数テキストボックスを選択する方法がある、という話を聞いてググッてみたりしたのですが、見つからず質問させていただきます。
よろしくお願いいたします。
>>423 遅れましたがありがとうございました。
オブジェクトでグラフ貼り付けできました
>446
図形描画のツールバー(テキストボックスとかオートシェープのあるバー)にある「オブジェクトの選択」。
白い矢印のアイコンが目印
450 :
446:2005/11/23(水) 23:03:16
>>448 おおっ!!
ありがとうございました!!
作業が捗ります!!
>>449 申し訳ありませんでした、スレ内きちんと調べずに質問の書き込みをしてしまいました。
以後気をつけます。
451 :
444:2005/11/24(木) 08:44:02
>>445 すいませんでした。現在の状況を書きます。
シート2のB2、D2、F2・・・にそれぞれ
=SMALL((Sheet1!$B2,Sheet1!$D2,Sheet1!$F2,Sheet1!$H2,Sheet1!$J2),1)
=SMALL((Sheet1!$B2,Sheet1!$D2,Sheet1!$F2,Sheet1!$H2,Sheet1!$J2),2)
=SMALL((Sheet1!$B2,Sheet1!$D2,Sheet1!$F2,Sheet1!$H2,Sheet1!$J2),3)
・・・
を入力し、単価順には並びました。
その後、業者名を呼んでくるためにVBAを使い
For J = 2 To 28831 (28831行あります)
For i = 2 To 10 Step 2
If worksheets(1).Cells(j, i) = worksheets(2).Cells(j, 2) Then .Cells(j, i + 1) = .Cells(j, 3)
GoTo a
End If
If worksheets(1).Cells(j, i) = worksheets(2).Cells(j, 4) Then .Cells(j, i + 1) = .Cells(j, 5)
GoTo a
End If
If worksheets(1).Cells(j, i) = worksheets(2).Cells(j, 6) Then .Cells(j, i + 1) = .Cells(j, 7)
GoTo a
end if
〜〜〜〜〜〜〜(実際は5回繰り返してますが行数の関係で省略します)
Point a
Next i
Next j
初心者丸出しのヘタな式ですいません。
これで、一応左から価格順に並び、その横に業者名が来たんですが
同じ価格が出てきた場合に、別の業者名にならずに同じ業者名が並んでしまいます。
同じ価格なら・・・のif文をつけようと思ったんですが
よくわかりませんでした。
452 :
444:2005/11/24(木) 08:49:39
VBAでやり方のわかる方、
そもそもVBAを使わなくてもできるやり方が
浮かぶ方、どなたか回答お願いします。
>>452 Sheet3のA列に業者名、B列に価格を並べて、ソートしてからSheet1に戻す。
これを品名ごとに繰り返す。
>>451-452(444)
1行あたりのデータ件数(データの入ってる列数)は、全行同一ですか?
それとも下図のように欠けてる部分(3行目のF:G列)がありますか?
A B C D E F G
2| タコ 100 あ .90 い 110 う
3| イカ .90 あ 110 い
4|マグロ 150 あ 140 い 150 う
ちょっと作ってみた。
PCスペックにもよるけど、思ったより時間掛かる・・・(10000行で数分くらい)
'実行前に"work"のシートを追加しとく
Sub Sample()
Dim Inp As Worksheet, Outp As Worksheet, wrk As Worksheet
Dim Erow As Long, Ecol As Integer, Cel As Object
Dim i As Long, j As Integer, k As Integer
Application.ScreenUpdating = False
Set Inp = Worksheets("Sheet1"): Set Outp = Worksheets("Sheet2"): Set wrk = Worksheets("work")
Erow = Inp.Range("A65536").End(xlUp).Row
For i = 1 To Erow
Ecol = Inp.Cells(i, 256).End(xlToLeft).Column: k = 0
For j = 2 To Ecol - 1 Step 2
k = k + 1: wrk.Cells(k, 1) = Inp.Cells(i, j): wrk.Cells(k, 2) = Inp.Cells(i, j + 1)
Next j
wrk.Columns("A:B").Sort Key1:=wrk.Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin
Outp.Cells(i, 1) = Inp.Cells(i, 1): j = 2
For Each Cel In wrk.Range("A1:B" & k)
Outp.Cells(i, j) = Cel.Value: j = j + 1
Next
wrk.Range("A:B").ClearContents
Next i
Application.ScreenUpdating = True: MsgBox "終わり"
End Sub
>>454 情報の後だしですいません。
5社のデータで、常にデータはA〜Kまで入っています
A 品名
B あ社の価格
C あ社の名前
D い社の価格
E い社の名前
F う社の価格
G う社の名前
H え社の価格
I え社の名前
J お社の価格
K お社の名前
457 :
444:2005/11/24(木) 12:55:21
>>455 わ!出来ました!!
構文が全く理解できてませんが
ありがとうございます!!
レスの行数制限の都合上、ソース見づらくてスマソ。
コロンである程度1行にまとめてるので、コロンはずして改行
すればちょっとは見やすくなるでしょう。
(※""の中に記述されてるコロンは駄目だけど)
>>456 Dim vntTemp() As Variant
Dim foo As Variant, bar As Variant
Dim bFlag As Boolean
Dim EndRow As Long, EndCol As Integer
Dim i As Long, j As Long
Dim SrcSh As Worksheet, RetSh As Worksheet
Set SrcSh = Worksheets("Sheet1") '元データのシート
Set RetSh = Worksheets("Sheet2") '結果を書き出すシート
EndCol = SrcSh.Cells(2, 256).End(xlToLeft).Column
EndRow = SrcSh.Cells(65536, 1).End(xlUp).Row
vntTemp = SrcSh.Range(SrcSh.Cells(2, 1), SrcSh.Cells(EndRow, EndCol)).Value
For i = 1 To UBound(vntTemp)
Do
bFlag = False
For j = 2 To EndCol - 2 Step 2
If vntTemp(i, j) > vntTemp(i, j + 2) Then
foo = vntTemp(i, j)
bar = vntTemp(i, j + 1)
vntTemp(i, j) = vntTemp(i, j + 2)
vntTemp(i, j + 1) = vntTemp(i, j + 3)
vntTemp(i, j + 2) = foo
vntTemp(i, j + 3) = bar
bFlag = True
End If
Next j
Loop While bFlag
Next i
RetSh.Range(RetSh.Cells(2, 1), RetSh.Cells(EndRow, EndCol)).Value = vntTemp
ソート処理としては一番低級な方法ですが、速度は20000行で2〜3秒くらい出てます。
7,8行目のシート名は環境に合わせて書き替えてください。
以前あった案件に近いのですが、、、。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
フォーム上のBOX1・2・3・4・5があるとします。
5つのTEXTBOXに入力すると、シートに入力される。
5つ入力終わると自動(手動でも)でセルをロック。
ただし、ロックするのは上記5セルだけ。
可能ならばぜひお力添えを。
>>458 いえ、昼ご飯食べてる間に28000行終わりました。
わざわざありがとうございました〜
>>459 ありがとうございます!!
さっそく試してみたんですが
vntTemp = SrcSh.Range(SrcSh.Cells(2, 1), SrcSh.Cells(EndRow, EndCol)).Value
の行で止まって
「配列には割り当てられません」と出てしまいました・・・
何か先にやっておくことがあるんでしょうか?
>>460 >5つのTEXTBOXに入力すると、シートに入力される。
この辺は解ってるだろうけど一応
Range().Value = TEXTBOX.Text
>5つ入力終わると自動
自動にしたければ何らかのイベントで
5つ入力終わったかどうかを判別できるようにして、
終わったと判断されたらロック処理に移るようにすればいい
>セルをロック。
>ただし、ロックするのは上記5セルだけ。
ロックしたいセルのみLockedプロパティをTrueにしてシートの保護
Excelはシートの保護をせずにはセルをロックできないので
>>461 >「配列には割り当てられません」と出てしまいました・・・
要素数の決まった配列に、Range().ValueやSplit()なんかを代入したときに出るエラーだな
でも
>>459のvntTempは空の配列だから問題ないと思うけど
実際vntTemp =の行まで実行してみたけどエラー出なかったし
おまえがなんか余計なことやったんじゃないの?
463 :
460:2005/11/24(木) 15:22:29
>>462さん
ありがとうございます!!
>ロックしたいセルのみLockedプロパティをTrueにしてシートの保護
>Excelはシートの保護をせずにはセルをロックできないので
という事は通常時はシート保護をせずに、この時シート保護をかける
という事ですよね?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 入門書を読んだ程度です
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Range Rows 変数
Range で範囲指定する際に変数を使う事は無理なのでしょうか?
iとjをintegerで型宣言した後にi行からj行までを選択したいのですが・・・・
行なら"A" & i でもいいけど
Cells使うのが普通
i = "A1"
j = "A5"
Range(i , j).Select
こんな感じ?
467 :
466:2005/11/24(木) 17:03:03
失礼しました。
>iとjをintegerで型宣言した後
でしたね。この場合String型じゃないとダメですね。
468 :
464:2005/11/24(木) 17:27:38
すみません、自己解決しました
Range(Rows(i), Rows(j))
で、iからj行まで指定可能でした
レスしてくれた方ありがとうございます
Cells(i, 10)に設備代が数値で入ってるんですが、通貨単位がUS$と日本円があります。
書式→セル→通貨→記号で、それぞれの通貨単位で表示させており、セルには
数値のみ入ってます。
そこで、こんなIf文をつくってみたものの、1行目で止まってしまいます。
ドコが悪いんでしょうか?
If Left(Cells(i, 10), 1).Text = "\" Then
Workbooks("hoge.xls").Sheet("LIST").Cells(1, 7) = Cells(i, 10).Value
Else
Workbooks("hoge.xls").Sheet("LIST").Cells(1, 7) = Cells(i, 10).Value * 為替
End If
【1 OSの種類 .】 Windows98SE
【2 Excelのバージョン 】 Excel97
Left().Text
>>470 dクス!!
Left().Text って使い方がマズーなんでしょうか?
もぃちょっと、ヒントをおねがい!
Cells().Text
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 ごく初級
【4 VBAでの回答の可否】 可
1つのbookに同じ書式のシートを数日おきに作成しています。
新たなシートを作成するときに直近のシートの特定のセルの値を引っぱってきて
自動で入力したいのですが。
具体的には、
シート名は、、…、PP051115、PP051118、PP051121 という名称です。
PP051124を新規作成するとき
A1、B1の値を引っぱってきたいのです。、コードの書き方教えて頂けないでしょうか。
【1 OSの種類 .】 WindowsXP PRO
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
Sheetについてなのですが、1つのブックに20程度sheetがありまして
見出しスクロールボタンを押す等しなければ必要なsheetを選択できなのですが
これを2行にするなど、見やすく出来る方法があれば教えていただきたいです。
476 :
名無しさん@そうだ選挙にいこう:2005/11/24(木) 22:13:26
仕様上多分無理じゃないかな?。
タブスクロールボタンにカーソル合わせて右クリすれば、縦に一覧が出るので、多少は選択しやすくなるとは思う。
>>474 引っ張るってなんだ?
値ってのは引っ張るもんじゃなくて取得し代入するものだ
普段はどうでもいいけど、質問するときくらいまともな用語使え
>A1、B1の値を引っぱってきたいのです
じゃ、どのシートのA1,B1を取得して、PP051124の何処に代入したいのかわからん
おそらくPP051121のA1,B1の値をPP051124のA1,B1に代入したいんだろうという予測は付くが
「直近のシート」じゃPP051121だとは断定出来ないし、新規シートの何処に代入したいかなんてのはちっとも書いてない
クイズスレじゃないんだから、回答者に予測させるような質問の仕方はするな
それにシートの新規作成から値の取得代入までをマクロでやりたいのか
手動で新規作成した後の、値の取得代入部分だけマクロでやりたいのかどっちなんだ?
初心者はなにかと「自動で」というが、どのタイミングで何を自動化したいのか明確にしろ
>>475 スクロールボタンの位置で右クリックすれば、シート一覧がポップアップする
シートのスクロールバーの幅を縮めれば、表示できるシートタブは増える
Excelは多段タブには対応してないのでそれ以上は無理だ
478 :
474:2005/11/24(木) 22:45:00
>>477おっしゃるとおりです。失礼しました。
>おそらくPP051121のA1,B1の値をPP051124のA1,B1に代入したいんだろうという予測は付くが
はい、そのとおりです。
テンプレートのシートがすでにあって、最終的にやりたいことは、
そのシートを開いて、シート内にボタンを作って押したら、シートの名前の変更(PP"本日の日付")と、
「PP051121のA1,B1の値をPP051124のA1,B1に代入」がしたかったので、
その疑問のひとつをお聞きしたかったのです。もうちょっと勉強してきます。
479 :
名無しさん@そうだ選挙にいこう:2005/11/24(木) 22:59:54
Sheets(Sheets.Count)使えばシートタブの一番右のシートを参照出来る。
シート名は、Format(Date,"PPyymmdd")で作れるな。
テクニックを聞くとかなら判るが、値の代入の方法を知らないとかいうのは、正直論外。
もっと自分で基礎を勉強した方がいいよ。
結局のところ値の取得代入はたったこれだけなんだよね
●.Range("A1:B1").Value=▲.Range("A1:B1").Value
で、細かい条件で●や▲の取得方法が変わってくる
例えば新規作成したシート上でマクロを実行するなら●はActiveSheetだし
シートの新規作成イベントを使うなら、●はイベントの引数だ
既存シートの並びが、新しいものほど右にあるって条件なら
▲はシートのCountからインデックスを割り出せばいいが
そうじゃないなら全シートの名前を比較して、一番新しいシートを見つけなければならない
そういった細かい条件が書かれてないから、具体的なアドバイスは出来ない
まあもうちょっと自分で勉強するってんだからとりあえずがんがれ
どうしてもわからなくて次に質問に来るときは条件は細かすぎるくらいにきちんと書こう
481 :
474:2005/11/24(木) 23:06:20
(日) (曜) (数)
1 月 1
2 火 2
3 水 1
4 木 2
5 金 1
6 土 2
7 日 1
8 月 2
9 火 1
〜
と一ヶ月のデータがあり、月曜日だけの合計、平均。火曜日だけの合計、平均・・・
と出したいとおもっているのですが、
合計は「SUMIF」でOKなのですが、「AVERAGEIF」なんてないし、
平均を出すにはどういった関数を使えば良いのでしょうか?
483 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 00:03:04
SUMIF の値を COUNTIF の値で割ればいいと思う
484 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 00:31:13
1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 マクロの記録 の内容が分かる程度
【4 VBAでの回答の可否】 可
A B C D E F
1 1日 2日 3日 4日 5日 6日
2 A社 在庫数 2個 10個 15個
3 B社 在庫数 3個 12個
4 C社 10個
上記のようなそれぞれの顧客別の注文個数を自動計算で在庫数 - 注文数 をその注文数のセルに書き換えしたいと
思っています。1日以降の計算結果は1日目からの累計にしたいです。C社の場合はB社と共通在庫のためB社の在庫数から引きます。
仕事で毎日計算機を使って計算していますが、マクロで処理できるプログラムを教えていただきたいです。
485 :
484:2005/11/25(金) 00:44:55
シート内容例がずれてますので追記します。1行目C列から日付。2行目以降、A列が顧客名、B列が在庫数、
C列からが日付に即した注文数となってます。お願いします。
指定の数字(10とか20とか)に対して文字を返すにはどの関数を使えば良いのですか?
∧∧
(*・ω・) お昼までにお願い・・・
_| ⊃/(___
/ └-(____/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
<⌒/ヽ-、___
/<_/____/
>>486 答える気をなくすようなAAをわざわざ貼り付けるその度胸wに免じて、
TEXTとか言っといてあげよう。
数式を指定したセルにに貼り付けする時の
相対参照について質問です。
A B C
1 ▲
2
3 ○
4
5 ○
6
7
8 ○
例えば▲にあるB1の数式『=A1』をコピーして、B3、B5、B8に貼り付けると
B3が「=A3」になり、B5が「=A5」、B8が「=A8」となりますが、
B3を「=A2」、
B5を「=A3」、
B8を「=A4」と貼り付けできる方法はあるのでしょうか?
よろしくお願いします。
489 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 09:37:22
初歩的な質問ですが教えてください。
あるセルで計算したその計算結果のみを他のセルにコピーペーストする事は出来ないのでしょうか?
例えば
A1のセルで「=A2+A3」と計算し、その計算結果の数字のみをB1のセルに、
コピーペーストするという事です。
単純に同じ数字を表示するだけならB1のセルを「=A1」とすればいいのですが、
今回はこの方法では問題が生じてしまいます。
なぜかというと、この場合のA1の計算は日々計算しなおす為、毎日結果が変わるのですが、
その計算結果のみを経過として記録したいと考えている為です。
あくまで変化し続けるA1のセルのある時点での結果のみを記録したいのです。
490 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 09:41:13
同じ列番号で一行ずつ飛んでいる(間の数値は含めたくない)数値を足し算する方法はありますか?偶数or奇数行を条件としたSUM関数のような、、、
>>488 標準のコピー&ペーストを使う限り無理
クリップボードにあるデータは
「一つ目の張り付けで=A2、二つ目の張り付けで=A3」
などというものではなく
「張り付けたセルの左隣を参照する式」
なので、何処に入れようと元の式が左隣を参照する式なら
同じく入れたセルに対して左隣を参照する式になる
これがExcelの仕様
一番簡単な解決策は、コピペを使わずD&Dを使うこと
B1の式をB4までオートフィルでコピーして、
B4の式をB8にD&D、B3の式をB5にD&Dとしていけば目的は果たせる
VBAわかるなら、ボタンを押すたびにアクティブセルに
参照をひとつだけ下にずらした式を入れるような物を組んでもいいけどね
>>489 値の張り付け
>>490 ROW()
質問ルール守れない奴等にはヒントしか教えない
「どういう意味ですか?」とか「コード書いてください」とか返してくるなよ
492 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 10:27:17
winXP・excel2002使用、VBAサッパリ分からない人間です
例えば、セルに↓の数字が1つずつ並んでいる状態があるとして
2 3 2 1 3 4 5
この場合「2」と「3」が最頻値なのですが、mode使うと「2」しか表示されません
「2」と「3」両方表示するようにできるのでしょうか?
□!!!これを見た貴方は3日以内に死にます!!!■
■死にたくなければ、このレスをコピーして他のスレに □
□10回貼り付けて下さい。1時間以内にです!もし無 ■
■した場合は、今日寝ている間に富子さんがやってきて□
□貴方の首を絞めに来ます。富子さんは太平洋戦争の■
■時に16歳という若さで亡くなった女の子で、未だに成 □
□仏していないそうです。信じる信じないは貴方次第。 ■
■今年になってからこのレスを無視した人で、“呪われ □
□て死亡した人”が続出しています。これは富子さんの ■
■呪い。呪われて死んでもいいのならこれを無視するこ□
□とでしょうね。 ■
■――貴方がこうしているうちに富子さんが後ろから見□
□ていますよ…。 ■
>>492 例えばその値がA1:G1に入ってるとするなら
H1に=MODE(A1:G1)で2が返る
そしてH2に{=MODE(IF(A1:G1=H1,"",A1:G1))}と入れれば
MODEのみで返した最頻値である2を除いた最頻値の3が返る
この方法で条件式を変えれば3番目、4番目も返せるが
2番目以降の頻度が、1番目のMODEのみで返した値と同じかどうかは判断してないので
さらにCOUNTIFを使ってMODEのみで返した値と頻度が同じ物だけを表示させれば良い
495 :
488:2005/11/25(金) 11:22:54
>>491 レスありがとうです。
D&Dで早速試してみようと思っています。
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 否
A1:A15の中に文字が入っていて、A1:A15の中からどれか選ぶ、というのをやってみたいのですが
やり方がわかりません。
懸賞で例えるなら、応募者の中から当選者を無作為に選ぶみたいな感じです。
>>496 =INDEX(A1:A15,INT(RAND()*15+1))
再計算する度に、A1:A15の中からランダムな位置の値を返す
値を保持したければどっかに値のみコピーしておけ
498 :
496:2005/11/25(金) 12:26:49
>>497 ありがとうございます。
早速実行してきます。
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 はい
【4 VBAでの回答の可否】 可
Excel2003のグラフ作成についてです。
自分で作成したグラフのデザインを「ユーザー定義」として登録すれば、
次回からグラフウィザード内から選択して使う事ができますが、
そのグラフデザインを友達のPCにも使わせたいと思います。
その場合、自分のExcelファイルを友達のPCにコピペすれば、
友達のPCでも同じウィザードから選択する事ができるでしょうか?
また、他の方法とかあるんでしょうか?
ユーザー設定のグラフの種類を他のユーザーと共有する @Excelヘルプ
501 :
489:2005/11/25(金) 13:37:03
502 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 14:32:11
【1 OSの種類 】 Windows○p
【2 Excelのバージョン 】 Ex○el2003
【3 VBAが使えるか 】い○え
【4 VBAでの回答の可否】 可
「入力規則」から「リスト」を選んで作ったドロップダウンリストのことなのですが、
ドロップダウンリストの中の文字が小さすぎて見えにくいです。
マイクロソフトの嫌がらせとしか思えないです。
どうすれば文字を大きくできますか?
>>502 「入力規則 リスト フォントサイズ」で過去ログ検索したら、
36スレに同じような質問と回答があった
ログ持ってなければにくちゃんねるにあるよ
●無しで読めるところにログがあるんだから
ここに貼れとか言わずに自分で見に行くこと
初歩的な質問ですが、セルに24と入力して16で認識させたり
夜といれて8と認識するにはどの関数を使えば良いのでしょう?
エクセル2002を使用しています。
パワーポイントやワードには「グリッド表示」などがあり、
「描画オブジェクトをグリッド線に合わせる」とか、「描画オブジェクト同士をくっつける」みたいな設定があり、
オートシェイプなどの配列が楽になっています。
エクセルにもこの類のものはないのでしょうか?
>>505 グリッド線に合わせるのなら、Altを押しながらマウスで枠線操作。
>>504 数値に対応した値を返したいなら、対応表をどこかに作ってVLOOKUPとか
文字列を数値扱いしたいなら名前の定義
これで解らない部分は自分で調べろ
>>505 Excelにも「グリッドに合わせる」というのは有りますが、何か?
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 Excel2000
VBA わかりません
セルに入力された値が、数値だったら処理して、それ以外(文字列)だったら
何もしない、という関数はどうするのでしょうか。エラー表示させたくないのです。
>>508 =IF(ISNUMBER(対象セル),"処理","")
510 :
505:2005/11/25(金) 16:38:33
>>507 ヘルプで「グリッドに合わせる」をキーワードにしても見つかりませんでした…。
が、あると分かったので俄然頑張る気が出てきました。
探してみます。
ありがとうございました!
511 :
505:2005/11/25(金) 16:44:20
>>506 すみません、507さんの書き込みだけが目に飛び込んできてしまっていました。
ありがとうございます!
早速使ってみます!
改めまして、506さん、507さん、ありがとうございました!
512 :
508:2005/11/25(金) 18:06:04
>>509 助かりました。ありがとうございました。
おばんでやすモナー。
A.xls と B.xls の2つのブックを開いて A.xlsにVBAを書いて処理するとき、
A.xlsの指定は ThisWorkbookですが、B.xlsはどうすれば指定できるモナー?
【1 OSの種類 .】 Windows98SE
【2 Excelのバージョン 】 Excel97
513の続き。
B.xlsのブックは固定じゃないので、ファイル名を指定するのはダメぽです。
>>513-514 ファイル名が固定じゃないなく、開いてるブックが2つだけなら
開いてる全ブックの中から、ThisWorkbook以外の物を探せばいいわな
「開いてる全ブック」はWorkbooksコレクションに格納されてる
解らなくても前回みたいにすぐに聞き返してこないで、
しばらく(2,3日)は自分で調べろよな
>>515 まる1日かけて調べたんだけど、Window(2)で指定するくらいしかワカランかった。
がんがれ
むー、やっぱりWindows(2)でアクチブにして、ActiveWorkbookで指定する方法しかワカラン。
∧_∧
( ´∀`) ))
/つ( ̄`ヽO_ノ⌒ヽ さてと、そろそろ寝るモナー
ノ ) \ ))
(__丿\ヽ :: ノ:::: )
丿 ,:' ))
(( (___,,.;:-−''"´``'‐'
3日後にまたどうぞ
520 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 21:31:21
メイドじゃなくてメイドのかっこうしたナニカだよな
なんでWorkbooksコレクションだというヒント(というか答え)を貰ってるのに、
Window(2)に行くんだろうか?
コレクションについて調べる気は全くないのか?
アドバイス(Workbooksコレクション)貰っても、それについて調べようとせず、
我が道(Window(2))をいくなら、3日どころか永久に来なくていいよ。
522 :
名無しさん@そうだ選挙にいこう:2005/11/25(金) 23:51:27
どうやって調べても分からないので教えてください。
ヘルプはもちろんグーグル等でも探してみたんですが・・・
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 空白セルの削除
関数を使って空白セルを削除し、数値のみが入っているセルを連続して
表示させるにはどうしたらいいでしょうか。
↓こんな感じで表示されてるのを ↓こんな感じにしたいのです。
1 1
2 2
3
3 4
4 5
5
いい方法があれば教えてください。お願いします。
>>522 データを範囲指定する。
F5(ジャンプ機能)セル選択→空白セル
削除(上方向にシフト)
524 :
522:2005/11/26(土) 00:12:21
それだと手動でやらなくてはいけませんよね。
あらゆるデータに柔軟に対応させたいため、関数を使ってやりたいのですが・・・
やっぱ無理でしょうか?
525 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 00:38:23
VBAに関する質問です。
例えば、セルA1に日付データの「2005/11/01」が入っていた時、VBAでそれを翌月(「2005/12/01」)にするにはどうしたらいいのでしょうか?
自分では range("A1").value + 30 というかなり強引なものしか出来ません。
これではだんだん日付にずれもできてしまうし…。
くだらない質問ですが、初心者なのでどなたかお教え下さい。
>>525 DateAdd関数などいかがでしょう。
527 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 00:52:58
>>526 できました!本に載っててもなかなか気付かないものですね(^^;)
本当に感謝してます。ありがとうございました!
528 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 01:29:46
【1 OSの種類】 WindowsXP
【2 Excelのバージョン】 Excel2003
【3 VBAが使えるか】 いいえ
【4 VBAでの回答の可否】否
シート1は、B列に商品名、C列にその商品コードが入力されたフォーマットになってます。
ここで、シート2をつくり、D列に商品名を入力していったら、E列には、自動に商品コードを表示したいのです。
どうしたらよいでしょうか?
どなたか教えてください!
529 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 02:10:37
>>522 関数では無理と思います。vba ならできますよ。つっても私も素人のため会社に行ってストックしてある
プログラムみないと即答できませんが。月曜日でよければお答えできます。
530 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 02:20:04
>>528 vlookupでできますよ。
vbaでの回答否との事ですが関数を書いておきます。シート2のE1に、
=VLOOKUP(D1,Sheet1!A:B,2,FALSE)
あとはオートフィルで任意の行まで。
531 :
530:2005/11/26(土) 02:42:29
間違えました。式中のA;BはB:Cです。
>>524 作業列使って関数で出す方法なら、過去ログに何度も出てきてる
というか、関数では「空白セルを削除し」みたいなことは出来ない
ワークシート関数は、あくまでも値の表示だけをするもので、
シート(セル)の操作が出来るような関数は皆無だよ
なので
>>522の12345が関数で返した値なら、
その関数の中で上に詰めて表示させるような式を組むことも可能かもしれないけど
直接値が入ってたり、その式を弄れなかったりするなら
セルを移動したり、削除したりは関数じゃできないから、作業セルを使う方法かVBAになってしまう
それに情報も少なすぎる
詰めたいのはセル単位なのか行単位なのか、
値は直接入力したものなのか式が返した物なのかも書いてない
とりあえず君は関数とはどういう物なのかを理解した上で、情報をきちんと書く事を覚えよう
534 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 11:39:58
536 :
522:2005/11/26(土) 13:10:52
>>529 すいません。vbaは使いたくないもので。。
>>533 作業列使う方法ですか・・・。過去ログ見てみます。
あと情報がすくないとのことですいません。
つめたいのはセル単位で値は関数式が返したものです。
>>536 過去ログにある作業列を使う方法が気に入らなかったとしても、
今ある数式に上詰めする処理を組み込む方法は
現在の式がどういうものかに因って変わってくるので
> あらゆるデータに柔軟に対応させたいため、関数を使ってやりたい
と言っている以上、おまえ自身がどんな状況でもその式を作れるようにならなくちゃ意味がない
つまりおまえ自身が「柔軟に対応」できる人間になるしかないってことだ
作業列を使う方法で妥協できるならいいが、
VBAイヤだ作業列イヤだというなら駄々捏ねるなら、
その駄々を通せるだけの実力を身につけろってこったな
538 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 17:02:20
>537
やり方が気に食わないからと言って
グダグダ言ってんじゃねーよ
テメーに関係ネーダロ
どうしたの、ボウヤ?
540 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 17:52:40
Wordでの差し込み印刷のようなことをExcelでできませんか。
具体的に言うとExcelで1対1対応のデータを作っています。
Wordで差し込み印刷をやる方法は知っているのですが,Excelでひな形を作ったところきれいにできたので差し込み印刷がしたいのです。
いまはExcelでLOOKUP関数を利用していますが,これだとたとえば1〜30のデータを印刷する場合,いちいちその番号を入力するのが手間で,Wordのようにいっぺんに印刷するのが希望です。
どなたかご教示下さい。
ちなみにVBAはやったことないので,できません。Excelは2002とマック版2004を使っています。
よろしくお願いします。
541 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 18:53:54
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 EXCEL Administrator v1 反映
EXCELファイル名(Administrator v1)
上記のようなファイルがv2、v3と気づくと出来ているのですが
もとのファイルに反映させるにはどうしたら良いのでしょうか?
何を言いたいのかさっぱり判らん
543 :
540:2005/11/26(土) 19:21:59
あれからいろいろググってみると次のようなサイトがありました。
http://okwave.jp/kotaeru.php3?q=516566 VBAはまったく知りませんでしたが,見よう見まねでやってみると
どうやら9割方できたようです。
LOOKUPもVLOOKUPに変えました。
あとひとつわからないことがあります。
マクロを実行すると1〜30のデータ差し込みはされるのですが,
流れるように高速で表示されるだけで印刷まではできません。
1〜30のデータを印刷するにはどのようにすればよいでしょうか。
> 印刷するにはどのようにすればよいでしょうか。
印刷する命令を与える=PrintOutメソッドを使う
PrintOutメソッドの使い方はヘルプ参照
膨大なデータ(エクセルデータではありません)から、エクセルにVLOOKUPをかけデータを抽出したいのですが、重すぎて大変です。何か良い方法はありませんか?
何のどういうデータをどういう状況でVLOOKUPに掛けると重すぎるのか詳しく掛け
547 :
540:2005/11/26(土) 19:50:18
>>544 レスありがとうございます。
543のサイトに紹介されていたものにもPrintOutがありました。
↓これです。5行目文頭の'を削除するとうまく印刷できました。
Sub aa()
With Worksheets("Sheet1")
For i = 2 To .Range("A65536").End(xlUp).Row
Worksheets("Sheet2").Range("B1") = .Range("A" & i)
'Worksheets("Sheet2").PrintOut
Next i
End With
End Sub
548 :
540:2005/11/26(土) 19:59:15
あと,もうひとつ質問させて下さい。
上記のぶんだと2のデータからしか開始しませんが,
毎回,任意の範囲をしていしてやりたいのですが,どのようにすればいいか
ご教示下さい。
549 :
540:2005/11/26(土) 20:01:25
3行目の2とA65536を変えると指定できそうですが,
マクロを編集せずに出来る方法が知りたいです。
宜しくお願いします。
会社で使っているソフト「インプロンプチュ?だったかな?」から、6万件のデータ(全てがコード管理されている)をCSVに落とし、
コードごとにフォルダを作り、エクセルファイルにVLOOKUPをかけ抽出しております。
言葉足らずかな??すみません。。。
>>549 > 任意の範囲をしていしてやりたいのですが
どんな指定の仕方をしたいかでやり方は変わってくるが、
大きく分ければ範囲を数値指定して、その数値を引数又はプロシージャ内で取得し
処理範囲に反映させる方法と、シート上で範囲選択しSelectionに対して処理させる方法かな
>>550 エクセルファイル"に"VLOOKUPを掛けるってのがどういう状況なのかと
普通VLOOKUPってのはデータ範囲に掛けるものだ
それと単にデータ量に比例して重いだけなら"VLOOKUP"に固着する限りどうにもならんぞ
「VLOOKUPの処理速度を上げる方法」なんてのがあったら最初から組み込まれてるはずだし
他にもっと有効な手段があるかもしれないけど情報が無いからわからんからな
553 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 20:39:56
指定した複数のセルを一度に1000倍にしたいのですが出来ますか?
つまり表の数字の単位を(千円)で作っていた物を1円単位の表にしたいのです。
方法があれば教えてくださいませ。
OS:WindowsXP
Ver:Excel2002
VBA:否
Google検索ワード:「Excel セル 全て 倍」
554 :
540:2005/11/26(土) 20:44:24
>>551 レスありがとうございます。
> 大きく分ければ範囲を数値指定して、その数値を引数又はプロシージャ内で取得し
> 処理範囲に反映させる方法と、シート上で範囲選択しSelectionに対して処理させる方法かな
この意味がわかりません。
当方,上にも書きましたとおり,さきほど生まれて初めてマクロをさわってみました。
すみません。
具体的には,たとえば上記の方法では2行目のデータから最後の行までのデータを返しますが
こちらが印刷したい範囲(たとえば20行目から30行目まで等)を,
毎回入力によって指定してやりたいのです。
これじゃうまく説明できてませんかね。
すみませんが宜しくお願いします。
>>551さんご丁寧にありがとうございます。。。
VLOOKUPに固着するっていうか他に有効な手段が解らないのが現実ですぅ。。。
ちなみにVBAも解らないから限界かもネ(^^;)
556 :
540:2005/11/26(土) 20:50:07
>>554 > 毎回入力によって指定
だからそれをどこにどういう風に入力するのかと
特定セルに入力、ドロップダウンリストで選択、RefEditで選択、InpotBoxに入力、選択範囲で指定、etc…
指定方法は腐るほど有る
いったいどれがいいんだ?
>>555 VLOOKUPが使いたくてVLOOKUPを使ってるんじゃなくて、
"何か"をしたいが為にその手段としてVLOOKUPを使ってるだろうが
その"何か"を書かずにVLOOKUP,VLOOKUPと言われりゃVLOOKUPに固着してるようにしか見えないよ
558 :
540:2005/11/26(土) 21:09:34
>>557 なるほど。
さいしょの特定セルに入力を希望します。
基本的に20〜30というふうな連番のデータで,とびとびのデータを印刷したいわけではありません。
宜しくお願いします。
Sub aa()
Dim i As Long, j As Long, k As Long
With Worksheets("Sheet1")
j = .Range("C1").Value ' 開始行
k = .Range("C2").Value ' 終了行
For i = j To k
Worksheets("Sheet2").Range("B1") = .Range("A" & i)
'Worksheets("Sheet2").PrintOut
Next i
End With
End Sub
C1,C2は好きなように書き換えて構わない
ここで指定したセルの値がマクロ実行時に読み込まれて処理範囲に適用される
560 :
540:2005/11/26(土) 21:40:39
>>559 遅レスごめんなさい。前に書いたデータがどこかに消えてまだ検証中です。
561 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 21:53:52
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可(*それのみでしか出来ない場合は可)
列A、Bの2つに分かれて入力された文字を列Aの各行の間に1つおきで
列Bの文字を挟み込みたいのですがどのようにすればいいのでしょうか?
よろしくお願いします。
例
/┃A┃B
1┃1┃2
2┃3┃4
3┃5┃6
4┃7┃8
↓↓↓
/┃A┃B
1┃1┃
2┃2┃
3┃3┃
4┃4┃
5┃5┃
6┃6┃
7┃7┃
8┃8┃
562 :
540:2005/11/26(土) 21:55:14
実行時エラー13
型が一致しません
と出ます。
デバッグをおすと,3行目のj = .Range("C1").Value ' 開始行が黄色くなります。
なにかいけないんでしょうか。
>>561 2,3,4行目を選択する(2:4ではなくCtrlキーを押しながら1行ずつ選択)
右クリックして挿入
B1にセルを挿入、下方向へシフト
B列のデータ範囲をコピーしてA2に形式を選択して貼り付けで空白セル無視
又は2列分のデータを正規表現置換が出来るテキストエディタに張り付け
s/\t/\r\n/g
で置換した後Excelに戻す
>>562 C1にちゃんと開始行番号入れたの?
「20〜30」とか入れなかった?
>>563 valiantじゃなくて
variantね
しかしvariant使えばIsNumeric等の入力検査を入れなくてはならないので
この場合はvariant使っても根本的には解決しない
数値が入力されないと後の処理に続かないし、
Long使ったって文字列型数字や全角数字など数値解釈できるものなら勝手に変換されるからね
565 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 22:20:08
関数について質問があります。商品の単価が7000円以上の時は定価の1.2倍をその表示価格とし、7000円以下の時は定価の1.3倍を表示価格と出るように関数と作ろうと思っています。
単価の列と表示価格の列があり、表示価格の列にIF関数を使って以下のような関数を試してみたのですけどうまくいきません。
=if(B3>=7000,"=B3*1.2","=B3*1.3")
そもそもIF関数では不可能なのでしょうか?他の関数があれば教えていただけませんか?よろしくお願いします。
マルチ
567 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 22:21:32
関数について質問があります。商品の単価が7000円以上の時は定価の1.2倍をその表示価格とし、7000円以下の時は定価の1.3倍を表示価格と出るように関数と作ろうと思っています。
単価の列と表示価格の列があり、表示価格の列にIF関数を使って以下のような関数を試してみたのですけどうまくいきません。
=if(B3>=7000,"=B3*1.2","=B3*1.3")
そもそもIF関数では不可能なのでしょうか?他の関数があれば教えていただけませんか?よろしくお願いします。
568 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 22:25:09
>>566 あ、ありがとうございます! 重複ポストごめんなさい!
マルチで検索してみます。
ワロタ
ハゲワラ
ジャジャーン!今日も来てしまいますた。
ねぇねぇ、Workbooksコレクション って何?
調べる気はあるんだけど、どんな方法で調べたらいいのか教えて!
>>567 7000円以上の時は定価の1.2倍
7000円以下の時は定価の1.3倍
んじゃ、7000円はどっち?
574 :
561:2005/11/26(土) 22:38:54
>>572 VBE? ちょっくらググってくる・・・・
>>575 いや、Excel上でALT+F11で出てくるべ
577 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 22:43:38
>>573 ありがとうございます!もうひとつIFをはさんでやってみます。
>>576 Alt + F11だと「VBA」なんだが・・・
>>577 IF文は1つでできるんだが。
それより、7000はどっちなのよ?(以下 or 以上 vs 未満)
(以下 or 以上 vs 未満 or 〜を超え) スマソ
で、7000未満だったら
∧_∧
( ´∀`) =IF(B3<7000,B3*1.3,B3*1.2) でイイかモナー
( )
| | |
(_ )_)
580 :
名無しさん@そうだ選挙にいこう:2005/11/26(土) 22:59:12
>>578 7000は以上です!
遅れました
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 エクセル 関数 定価
おぉ、Workbooksコレクション ワカッタYO!
ありがd!
>>578 だからVisual Basic for Applications Editorだっての
>>578 >Alt + F11だと「VBA」なんだが・・・
こいつ、ぜってーググってない。
はいはい糞コテ糞コテ
585 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 07:46:28
WinXP Excel2003 VBA超初心者です。宜しくお願いします。
質問1) ユーザフォームのコンボボックスの初期アイテム?について
コンボボックス1〜5は同じ設定(AMかPMと表示)にしたいのですが、まとめられますか?
それとも↓のように1個1個しか設定できませんか?
Private Sub UserForm_Initialize()
With ComboBox1
.Clear
.AddItem "AM"
.AddItem "PM"
End With
With ComboBox2…以下5まで同じ
End Sub
質問2) ユーザフォームのリストボックスの初期アイテムについて
アイテムをシート名とセル範囲で指定する方法について教えてください
参照したい項目が別のシートにあるので、
プロパティ→RawSource(セル範囲)は使えないのではないかと思うのですが…
>>585 回答1)
ComboBoxのクラスを作って処理する
ComboBoxの配列を作ってFor Eachループを回す
1〜5のForループを回してControlsコレクションにキーを指定し、返すオブジェクトを処理する
どれでもお好きなのつかえ
配列の作り方も、For Eachループも、Forループも、Controlsコレクションもヘルプにのってるので
わからないことがあったらヘルプ見な
でも2項目ならオプションボタンにした方がいいんじゃないかと
回答2)
使えないのではないかと"思う"まえに試せと
普通にシート名を含めた指定が可能だし、ブック名だって指定できる
そもそも「ブック名/シート名/セルアドレス」ってのだって立派な"セル範囲"だぞ
おまえはセル範囲ってのを、セルアドレス(A1:A10)だけのものだと勘違いしてないか?
587 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 10:56:35
他のエクセルのファイルから、数式だけをコピーしたいのですが、
(形式を選択して貼付け→数式 でも×)
他のファイルのセル位置まで参照されてしまい、結局それを手打ちで消す作業になっています。l
何か良い方法はありますでしょうか・・・
数式バーの中の数式をコピーする
複数セルならオプションで数式を表示させてコピペ
シート内の離れた場所のセルを複数選択するのを
マウスを使わずキーボード操作だけでやるにはどうすればいいのですか?
>>590 ありがとうございます。
出直してきます。
592 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 12:48:09
すごく素人な質問かもしれませんがお願いします。
IF関数の式で数字入力がある時だけ計算して、
普段は空欄にしたく、自分なりに作ってみました。
=IF(A1>0,SUM(B1-A1)," ")
上の式で、A1に数字の0がある時に0が返ってきません。
また、論理式をA1>=0とすると、数字入力がなくても0が返ってきます。
どなたかお願いします。
>>592 素人なのは構わないが、素人でも日本語は読めるだろ
テンプレをちゃんと読めよ
>>7
594 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 15:10:42
【1 OSの種類 .】 Windows98SE
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
VBAで価格表を集計してますが、毎回行数が変わるため、手動で
=SUM(E3:E*)と入力しています。E列の最下行+1行に "=SUM(E3:E*)"を
入れるにはどうすればいいですか?
※ *は最下行のセル
>>595 最下行って言うからにはその下にはデータが無いんだろうから、
=SUM(E3:E65536)に固定しておけばいいじゃん
SUM関数なら範囲に空セルが有っても結果に影響しないから
どうしてもそれがまずいならEndプロパティ(ヘルプ参照)で最下行を調べる
597 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 22:37:00
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
色々な名前定義のされたワークシート「data」を、名前定義をそのまま
別のブックで使おうと思い、コピーしたのですが、
コピー先のブックで名前が使えません。
名前定義も引き継がせる事はできないのでしょうか?
598 :
595:2005/11/27(日) 22:52:29
>>596 E1とかE2セルに入れるなら =SUM(E3:E65536)で構いませんが、
E列の最下行+1行だと循環参照で駄目なんですよ。
最下行+1行というのは、最下行がE1234なら、E1235という意味です。
>>597 セル範囲ではなく値を定義する場合は
シートレベルの定義ではなくブックレベルの定義になるので
>色々な名前定義のされたワークシート「data」
のつもりでも、実際には"色々な名前定義のされたワークブック"と
"何も定義してないワークシート「data」"ということになるので
"何も定義してないワークシート「data」"を移動しても無意味
VBAで定義を移すことが出来るけど、VBAの可否もVBA使えるかも書いてないので
自分でやりましょう
>>598 なら
>>596でも書いたEndプロパティで
600 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 23:19:09
Excelのsheet1にボタンを貼り付けてそのボタンを押下すると
別のディレクトリにあるExcelファイル
(例 C:\Excelシートフォルダ\Excelシート.xls)
の中にあるSheet2の中身の内容を
こちらのsheet2に全部貼り付けることがしたいのですが
やり方としてはVBAなどを使うと思いますがどういったやり方があるのでしょうか?
また参考になるホームページとかありますでしょうか?
ググっても見つからなかったので教えてください
>どういったやり方があるのでしょうか?
"別のディレクトリにあるExcelファイル"を開いて(Open)、コピーして(Copy)、張り付け(Paste)
「開かずに」などの条件後出しは無しの方向で
まあやり方は大して変わらないけど
>ググっても見つからなかったので
ググって無くても書ける台詞
ググるってのはGoogleの検索窓に文字を入れて検索ボタンを押すってことじゃないぞ
検索キーワードを吟味していろんなパターンで検索し、検索結果を調べて回るってことだ
おそらくおまえはググってない
検索ボタンは押したかもしれないけどね
602 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 23:47:24
回答者は1人か2人なのか
いつも口調が同じだけど
603 :
名無しさん@そうだ選挙にいこう:2005/11/27(日) 23:50:05
>>601 >Excelのsheet1にボタンを貼り付けてそのボタンを押下すると
>>603 ボタン押したらファイルOPEN→Copy→Pasteの処理をVBAで書けば言いわけだから
>>601の回答は正解かと。
いつも同じ質問者かって言うぐらいテンプレ見ないのが多かったりも
句読点はシッカリと打ってね。
ヴァカっぽく思えるから。
606がヴァカっぽく見えるのは仕様ですか?
608 :
595:2005/11/28(月) 00:06:05
>>599 合計値を書くんじゃなくて、"=SUM(E3:E*)"を書きたいんだけど。
2回も書いたのに理解できないなら、無理に答えなくてもいいです。
>>608 だからEndプロパティで、"=SUM(E3:E*)"の*に書くべき値を取得できると
回答された内容を調べもせずに自分の持つ少ない知識だけで決めつけるなら
質問しないで納得行くまで自分だけで調べろ
Private Sub CommandButton1_Click()
Dim a As Range
Set a = Sheet2.Range("A1:IV65535")
a.Copy
Range("A1:IV65535").PasteSpecial
End Sub
611 :
595:2005/11/28(月) 00:14:39
*に書くべき値を取得するのは分かってるってば(w
あんたが書いた=SUM(E3:E65536)と、どう関連させたいわけ?
607もヴァカっぽく見えるのは仕様です。
595が壊れてきた予感。
名前欄を消したり番号入れたり大変ですね。
>>99 でも
不戦敗を選択した安倍正弘、勝海舟、昭和天皇などは
中国韓国では絶対に理解されないわけで
逆に劉禅、李完用などは日本では英雄になりそう
617 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 00:25:39
さぁ、クソスレが盛り上がってまいりました
619 :
616:2005/11/28(月) 00:33:37
誤爆でした
素敵な誤爆でした。
Excelを学ぶ上でオススメの書籍ってどんなのがありますか?
本屋に行って探すぐらいしたらぁ?
623 :
592:2005/11/28(月) 12:01:00
>>593 回答ありがとうです。
昨日は職場からカキコしていて、自分の携帯電話しか無かったので、
あきらめていたのですが、あなたのレスで助かりました。
感謝、感謝です。
624 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 15:20:49
他で質問させてもらったのですが、レスをいただけなかったのでこちらで聞かせてください。
1.xlsの中でマクロ処理でデータを加工した後で2.xlsを開き、マクロで2.xlsの中にグラフを出力しています。1.xlsの中にはグラフは保持していません。
次に3.xlsにその2.xlsのグラフをコピーして3.xls上でグラフを整形し、印刷しています。
ここで問題が有るのですが、3.xlsを開く時にリンクされているファイルを更新するか?と
聞かれるのではいを選択しても3.xlsのグラフは最新版には更新されません。
最初にコピーしたグラフがずっと保持されていてグラフの中身を変化しても全く反映されません。
3.xlsでリンク元を確認すると1.xlsとなっています。手動で2.xlsを選択するとグラフが空白に
なってしまいます。
これを回避する方法がありましたら教えてください。
>>624 > 他で質問させてもらったのですが、レスをいただけなかったのでこちらで聞かせてください。
ざんねん。
マルチ禁です。あきらめてね。
もし、また質問することがあれば気をつけてね。
糞自治厨、お前に聞いてるんじゃねえよ。書き込まなきゃいいだけだ。
なんでも自分宛と思うな。精神病患者じゃねえんだからよ。
>>616 チョンはほとんどクソばっかだけど、李完用だけはまとも。
628 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 18:58:25
【1 OSの種類 .】 Windowsxp
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】 まだ
【4 VBAでの回答の可否】 可
e1 = Range("a1").Value
e2 = Range("a2").Value
e3 = Range("a3").Value
For i = 1 To 3
Cells(i, 2).Value = e & i
Next
上の記述みたいに変数+数字(eの1〜3)で定義してあるものをループ処理したいのですが
うまく認識してくれません。
変数と変数で処理をするにはどうやればよろしいのでしょうか?
629 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 19:04:07
質問です。
今ある実測値のグラフに理論値のグラフを追加したいんです。数式はわかっています。どうすればいいでしょうか。
とりあえず細かくx値とy値を求めて線で繋げてますが、よりよい方法知ってる方いましたら教えて下さい
>>626 誰宛だろうと、ルール違反は追い返されることには違いないけどね。
「ルール違反だけど追い返さないでください」なんてことは許されないので
ルール違反に対して、「書き込まなきゃいいだけ」なんて屁理屈はまかり通らない。
>>628 変数の値で変数名を指定することは出来ないので、配列を使う。
dim e(1 to 3)
e(1) = Range("a1").Value
Cells(i, 2).Value = e(i)
つーか、なんで下だけループ使おうと思ったのか不思議。
上も
For i = 1 To 3
e(i) = Cells(i, 1).Value
にすればいいのに。
それ以前に、間に取得した値を使った処理が入らないなら
Range("B1:B3").Value = Range("A1:A3").Value
だけで済むね。
>>629 さようなら。
Q&Aラウンジ ExcelVBAに出入りしてる「名無しさん」いる?
エクセルって、行の長さを変えようとすると、上のセルまで全部変わりますよね
横方向だけ指定して変えたいんですけど、どうしたらいいですか?
よくある質問かも知れないが・・・
Excel2000です。
セルにデータ(数値・文字列・・・)を入力後、Enterキーを押すと右セルへ移動
させるように設定しています。
では、
A1→B1→D1→F1 と移動していき(Enter動作で)、F1に入力後、Enterキーを押すと
A2→B2→D2→F2 と移り、次にA3→B3→D3→F3・・・と下の行へ移って行く方法は
ないですか。
昔、A1→B1→C1→A2→B2→C2→・・・というパターンは
そのシートのタブ上で右クリックし、[コードの表示] して、画面左下部のScrollArea
のプロパティを "$A:$C"と設定していたのですが、これだとD列より右側は全く触れる
ことができないので、融通が利かず、使いにくいと結論付けました。
天才博士、お願いしま
>>632 行の長さってのが列幅のことなら、セル単位、行単位での指定は仕様上不可能
Excelは表作成ソフトではなく表計算ソフトだよ
代用法はセルの結合
>>633 VBAで可能
具体的な方法は
>>2※を読んだ上で自分で調べろ
635 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 20:18:21
>>630 ありがとうございます
配列ですね、調べてみます。
上のはあくまでサンプルで、言葉で説明しにくかったので書いてみました。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 基本的なことだけ、本と格闘しながら
【4 VBAでの回答の可否】 可
マクロで質問があります。
何の変哲も無いテキストファイルに1行目から順に、例えば
10000 AAAA
10001 BBBB
10002 CCCC
10003 DDDD
20000 EEEE
20001 FFFF
20002 GGGG
といった感じに入力されているとします。
これをマクロを使って読み込んで
100 200 300 ・・・
00 AAAA EEEE
01 BBBB FFFF
02 CCCC GGGG
03 DDDD
といった感じに配列したいのですが、どういった手順を踏めばいいでしょうか。
マクロで一度縦一列のままに読み込んで上から順に検索して行って
行と列をそれぞれ変数を使って指定してコピーさせる、といった感じでしょうか。
それとも何かもっと簡単な手順で済む方法はありませんか?
>>636 条件が曖昧過ぎるので具体的な事は言えないが、
左列の数値が行列位置を表してる場合なら
line inputとかで行単位取得し、それを数値と文字列で別変数又は配列に格納して
数値の方を文字列処理と計算で代入位置を算出するのが普通じゃないの?
例えば「10002 CCCC」は1列,3行の位置だが、10002を変数aに格納したとして
left(a,1)で1(列)が得られる、right(a,2)+1で3(行)が得られる
左列の数値をラベルとして見るなら話は変わってくる
更にラベルの内容が既に解ってるかどうかとか、変動するかどうかでも処理が変わってくる
とりあえずこれ以上ここで聞くつもりなら、条件は細かすぎるくらいに書くことと、
>>2・8に従ってうまくいかなくてもいいから自分の書いたコードを貼ることをお忘れなく
>>633 右移動をEnterではなくTabキーで行い、Enterは下移動に設定したら
多分希望通りのことになるんじゃないかな。
639 :
624:2005/11/28(月) 21:06:41
>>625 なんか変なのがまぎれこんでいますが、2ちゃんではない他のすごくアクティブな掲示板で
丸3日レスがつかなかったのでこちらで再質問したのですが、これでもマルチでしょうか?
質問取り下げをしてこなかったとすれば
「2ちゃんではない」とか「すごくアクティブな」とか関係なくマルチ
マルチってのは違う場所で同じ質問をすることなので
レスが付かなかったとか、何日経ったとかは全く関係ない
前の質問が生きている状態で別の場所に同じ質問をすれば
他のどんな条件も関係なくマルチになるよ
逆に質問取り下げをしたなら、数分後にどこかで同じ質問をしてもマルチじゃない
1質問1スレタイプの掲示板なら、スレを止めるなり解決済み処理するなり
そうじゃないなら移動するためここでは回答不要の旨書くなりね
エクセルの関数でローンの毎月の支払額を出そうとしているのですが、うまくいきません。
A1に利率12・9、A2に支払い回数24、A3に元金500000と入れて
=-PMT($A$1/12,$A$2,$A$3,0,0)
の計算式を入れると、537000となっていまいます。
何か間違っているのか、自分でわかりません。
どうやれば、毎月の支払額を出せるでしょうか?
自分で調べろ!
どうしたらキーボード操作でマウスの左クリックを実現できるか教えてください。
「マウスキー機能を使う」を有効にしてもまったく動作しません。
使っているのはノートNEC LaVieでエクセル2003です。
_| ̄|○ <お願いします
毎月の支払額=\537'000でいいじゃん
俺の給料じゃ、これ払ったらほとんど残らねーけどなw
>>644 >キーボード操作でマウスの左クリックを実現
Excel上でやりたいのだとしても、Excelに関する質問じゃないのでスレ違い
俺の年収300万ちょっと、、、、、、、、笑えん
>>636 実はACCESSのクロス集計なら簡単に出来たりする。
しかし残念ながらEXCELのピボットテーブルでは出来ない・・・
(集計値に「値そのもの」というのがないから)
なのでVBAでゴリゴリ書かないといけない(経験済み)。
ACCESSが使える環境ならそれもひとつの選択肢、という
ことも参考に(スレ違いなら申し訳ない)。
650 :
641:2005/11/28(月) 22:42:46
くだらない質問をしてすいませんでした。
自分で調べてもわからなかったのですが、もっとよく調べてみます。
651 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 22:44:01
質問スレなのに、なんで相談所なん?
ご利用は、計画的に。
653 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 23:46:37
アンケートなどで使われているチェックボックスをONする
VBAのIE操作を知りたいのです
宜しくお願い致します。
Excelで平成12年12月15日と書いてある資料を
121215 と入力したら
平成12年12月15日 もしくは 2000/12/15
にパッと表示してくれるイカした方法はないでしょうか?
もうメンドーで…ホロリ。
655 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 23:52:06
書式→セル→日付→種類選択
後はセルをコピーする
>>653もお願いします
656 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 23:52:42
>>653 Excel、又はユーザーフォームのチェックボックス操作ならここでいいけど、
IE上のチェックボックス操作なら
>>2 >・7 VBAはプログラム言語のVisualBasic(6以前)に近い処理が可能で Excelに関係ない処理も出来ます。
> Excelの操作に関係ない部分は、VBスレやAPIスレなどの該当スレで質問しましょう。
なのでスレ違い
>>654 表示形式設定しておいてh12/12/15と入力すればそうなるよ
どうしても「121215」の入力がいいなら、
関数で文字列操作して入力とは別のセルに表紙させる方法と
VBAで同セル内で変換する方法があるけど、
>>2※なので具体的な方法はご自分で
658 :
名無しさん@そうだ選挙にいこう:2005/11/28(月) 23:57:43
>>657 ユーザーフォームのチェックボックス操作を知りたいです
宜しくお願いします
ギァー!!!
できたっ!
ありがとー皆さん。救われた。
>>658 ユーザーフォーム名.チェックボックスオブジェクト名.Value = True
662 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 00:04:56
ヘルプ見れ! ヘルプ
663 :
658:2005/11/29(火) 00:15:49
>>661 ご返答ありがとうございます
トライしてみます
出来ましたら報告に来ます
今日はもう遅いので明日以降になると思いますが
>>660 いいえ違います
>>663 649 [ひよこ名無しさん] [sage] Date: 2005/11/28(月) 23:42:39 ID:???
アンケートなどで使われているチェックボックスをONする
VBAのIE操作を知りたいのです
宜しくお願い致します。
>>647 Excel上でやりたいのだとしたら十分Excelに関する質問だと思うけど。
バッサリ切って捨てるのは嫌いじゃないが、スレの範囲を不当に狭めるごときレスは気に入らんな。
666 :
663:2005/11/29(火) 00:35:26
>>664 どこからの書き込みかしりませんが
それは私が書いたものとは違います
他に知りたい人がいたのでしょう
> Excel上でやりたいのだとしたら十分Excelに関する質問だと思うけど。
それだとPC操作のほとんどは「Excel上で」を付けることで
このスレの範疇ってことになってしまう。
その目的の操作が、Excel以外で上手く行き、Excelでのみ上手く行かないとかならこのスレの範疇かもしれないけど
そうではなく単に汎用操作を行う対象が偶々Excelだっただけで、汎用操作の質問をここでされたらスレの趣旨が変わってしまう。
ここはPCの汎用的な質問をするスレではなくExcel限定のスレだよ。
「スレの範囲を不当に狭める」ではなく、「スレの趣旨から外れたものを正当に弾く」ね。
まあ、644が情報小出しで、「Excelのみでうまくいかない」ってことかもしれないけど、現時点ではそうは書いてないし。
「Excel上で(他も含めて)IMEが動作しません」とか、
「Excel上で(他も含めて)ダブルクリックが上手くできません」とかを弾くのが不当かね?
>>654 ユーザー定義書式使えばできるんじゃないかな?
>>637>>649 レスありがとうございます。ラベルってのはよくわからないです、調べて出直します。
数値の上3桁で横軸、下2桁で縦軸を決めて文字列を配置したいので、
とりあえずアドバイス通りの方法と、あとは数値が+1なら下のセルにコピー、
数値が+1以上なら次の列の一番上にコピー、という感じでやってみます。
>>667 そんな雑談ほかでやってください。
関係ないと思えばスルーすればいいだけの話です。
むだなレスをしないようにね。わたしも。
説得力の欠片もないなw
説得されたいの?
おまえじゃ無理
673 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 08:59:15
674 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 09:52:02
どうしたの、ボウヤ?
アフォは気にせずに行きましょう
というか、644のやりたい事ってF2ではないのかと
そ、そんな〜
678 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 16:14:03
>>673 テンプレ
>>2で培われた。
テンプレに入っているということはこのExcel総合相談所の総意です。
テンプレが気に食わないならまずはテンプレの変更を申し出るべき。
それができないならよそに行ってください。スレ違いです。
679 :
624:2005/11/29(火) 16:15:57
>>640 取り消しなどができない掲示板ですので、そちらで質問が消える3〜4日後に再質問させてもらいます。
680 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 16:26:17
>>679 レスはつけれるんだろ?どこに書いてるのか知らないけど。
自分で「3日経ちましたが回答が得られないようですのでこの質問は終了します。ありがとうございました。」とでもレスつけとけばマルチにはならないと思うよ。
【1 OSの種類 .】 WindowsXP SP1
【2 Excelのバージョン 】 Excel2003 SP2
【3 VBAが使えるか .】 はい(基礎的なものならば。)
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 close、save、saveas、ダイアログ、VBA
Excelファイルで自分自身を上書き保存するVBAを書いています。
他人が使用している等でファイルを上書きできない場合、エラーとしてエラー処理に
分岐したいと思います。
しかし、保存の記述で
Workbook.Close savechanges:=True
では別ファイル名で保存するためのダイアログボックスが表示されてしまいます。
Workbook.Save や
Workbook.SaveAs Filename:=〜
ではメッセージボックスが表示され、さらに「はい」を選択するとエラーにならず
処理が続行してしまいます。(当然ブックの保存はされていません)
ダイアログ/メッセージボックスを表示させずにエラーコードが返るようにするには、
どのように記述すればよいのでしょうか。
確かExcel2000では後者2つはメッセージが出ずにエラーになったと思うのですが。
お分かりになる方、どうかよろしくお願い致します。
682 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 17:34:50
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 コピペ→実行程度なら
【4 VBAでの回答の可否】 可
名前|初戦の成績 |レースA|レースB|レースC|レースD
イ | (3) | | 3 | 5 | 4
ロ | (6) | 6 | 5 | 4 | 6
ハ | (8) | | | | 8
わかりづらいかもしれませんが許してください。
バラバラに始まる横方向の数字から、左端の数字だけを集めて
()の中のような結果を得たいのですがどうしたらいいですか?
よろしくお願いします。
683 :
681:2005/11/29(火) 17:35:13
↑
ダイアログボックス等は、「上書き禁止」でファイルを開いた場合の動作です。
「上書き禁止」で実現させたい動作とお考えください。
>>624が無知なだけで紳士的な対応をしているのに誰も答えないところが笑える。
まあどっかの掲示板の発言を削除してきても誰も答えられなくて終わりなんだろうけどw
685 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 18:44:20
本人乙
686 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 19:41:22
意味がよく分からないけど
Application.DisplayAlerts = False
じゃだめなの?
687 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 19:53:18
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】
こんばんは。
あるブックをコピーし、新しいブックに貼り付けしたいのですが、
列幅や行幅もうり二つに反映させたいのですが、列幅や行幅を
異なるブック間でコピーするのはどうしたらいいのでしょう?
よろしくです。
688 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 19:57:36
>>687 こんばんわ
それ漏れもやりたいと思った
コピーして貼り付けると
行間が変わってしまって、直すのめんどくさいんだよな
689 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 20:09:54
>>667 >「Excel上で(他も含めて)IMEが動作しません」とか、
(他も含めて)でなければいいじゃんかよ。
情報不足を叩くのならいいけど、情報不足にも関わらず予断でスレの範囲を不当に狭めてるだろ。
だいたいそんな長文書く余裕があるならもっとやさしく回答してやったら?漏れはゴメンだが
691 :
681:2005/11/29(火) 20:31:22
>>686 そうですね。
明日、会社に出たらやってみます。
692 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 20:49:48
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
一定時間ごとにExcelでWebから外部データ取り込みで指定したテーブルだけ読み込んで
csv形式で上書き保存するといった作業をVBAでできるらしいのですが
VBAは使ったことがないのでよくわかりませんので
どなたか詳しい説明をしてもらえますでしょうか。
693 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 21:47:05
何その質問
694 :
◆EROEROeX96 :2005/11/29(火) 22:11:36
Sub test()
Dim Book1 As String, Book2 As String
Book1 = "D:\DATA\女子大生リスト.xls"
Book2 = "C:\EXCEL\集計.xls"
Workbooks(Book1).Worksheets("LIST").Range("A3:C18").Copy _
Workbooks(Book2).Worksheets("集計").Range("A3")
End Sub
実行すると、Work〜 で止まってしまいます。
どこがイクないんでしょうか?
695 :
◆EROEROeX96 :2005/11/29(火) 22:14:12
Dim Book1 As String, Book2 As String
Book1 = "D:\DATA\女子大生リスト.xls"
Book2 = "C:\EXCEL\集計.xls"
Workbooks(Book1).Worksheets("LIST").Range("A3:C18").Copy _
Workbooks(Book2).Worksheets("集計").Range("A3")
実行すると止まってしまうんですが、どこが悪いんでしょうか?
696 :
◆EROEROeX96 :2005/11/29(火) 22:20:43
すみません。
C:\をNGワードに登録してたので、694がエラったのかと思い、
2重カキコになってしまいました。
697 :
名無しさん@そうだ選挙にいこう:2005/11/29(火) 22:24:46
【1 OSの種類 .】 Windows XP/2000
【2 Excelのバージョン 】 Excel XP/ 2002
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可(シート数が多いので、ロードに時間がかからなければ。。。)
【5 検索キーワード 】 excel 数式 グラフ 空白
Excelの折れ線グラフ描画で、
=IF(A1="","",SUM(A1,A10))
といった形で数値を取得しています。
A1が空の場合、折れ線グラフ上では0としてプロットされてしまい、
非常に大きな下降線のようになります。
=IF(A1="",NA(),SUM(A1,A10))
とし、オプションで空白をプロットしないとすれば、グラフ上では現れないのですが、
セルに#N/Aと表示されてしまいます。
やりたいことは、A1が空の場合、セルの表示自体を空にしつつ、
かつグラフ上では無視してもらいたいのです。
今のところ、#N/Aを我慢しているのですが、何かいい方法ありませんか?
699 :
◆EROEROeX96 :2005/11/29(火) 22:53:13
とりあえず"D:\DATA\女子大生リスト.xls"をうぷ
701 :
◆EROEROeX96 :2005/11/29(火) 23:15:48
Workbooks(Book1).Worksheets("LIST").Range("A3:C18").Copy _
Workbooks(Book2).Worksheets("集計").Range("A3")
↑なんだけど、文法が悪いの?
702 :
697:2005/11/29(火) 23:17:41
ちょっと補足します。
条件付書式で#N/Aを消すことも考えたのですが、セルの色が必ずしも一定でなく、
値によっても変化するため、うまいこといっていません。
>>697の直接の回答でなくても、条件付書式の設定で、セル色と同じ文字色を指定する方法でも
問題は解決しますので、こちらをご教示いただいてもうれしい限りです。
よろしくお願いします。
703 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 01:01:25
704 :
681:2005/11/30(水) 08:23:51
>>686 だめでした orz
Workbook.Close savechanges:=True → 変わらず。
Workbook.Save、Workbook.SaveAs Filename:=〜 → メッセージボックスは出ないが、エラーにもならない。
>>681 >Workbook.Close savechanges:=True
>では別ファイル名で保存するためのダイアログボックスが表示されてしまいます。
一度も保存してないbookでは、ダイアログが出てしまいますが、違いますか?
>>682 Range("B1").Value = Range("IV1").End(xlToleft).Value
>>687 Range(コピー元).Copy
Range(コピー先).PasteSpecial xlPasteColumnWidths
>>701 ブック名に「"」がついてないんじゃない?
エクセルのcsv形式での保存のときの動きが我慢ならない
708 :
705:2005/11/30(水) 10:00:08
VBAの質問です。
ThisWorkbook.VBProject.VBComponents(1).Type = vbext_ct_ClassModule
みたいな感じで、ブック内のクラスモジュールを探し出し
そのクラスをインスタンス化する方法ってあるんでしょうか?
雰囲気としては set obj = {classModule}.createInstance とか出来ないかな、と。
Accessみたいにevalできないんで、不可能でしょうか。
710 :
681:2005/11/30(水) 10:31:23
>>705 ワークシート画面から手動で「上書き保存」した際もそうなのですが、「コピー(元ファイル名).xls」と
頭に"コピー"という文字列をつけてダイアログボックスが表示されてしまうのです。
質問です。
時間の枠をドラッグして伸ばした時、秒がずれてくる事が
ありますが どうすれば 治せるor防ぐ 事ができますか?
初歩的かもしれませんが よろしくおねがいします
712 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 11:39:40
>>711 頼むからテンプレ読んでくれ。
あなたは自分でその状況を見てるから、その書き方でわかるかもしれないが、
答える側からしたらあなたの目の前のワークシートを見ることができないんだから。
時間の枠というのがまずどういったものかわからないし、秒がずれてくるというのもどういう状況かわかりません。
もっと詳しく状況を説明すれば、答えてくれる人もいるでしょう。
714 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 12:59:58
【1 OSの種類 】 Windows2000
【2 Excelのバージョン .】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
シート1とシートt2があって、シート2のセルにsheet1の値を参照しているとき、
シート2に書かれた数式のシート1のsheet名の頭に「+」が付いています。
=+シート1!A1 ←こんな感じです
自分も質問されたんですけど、自分とこでやってもそんなふうにならなくて、
その人のExcel上でだけ(?)という感じです。
プラスを取ったりしてみましたが、プラスがある場合と計算結果が変わらない時と
変わるときがあります。
このプラスの意味を教えていただきたいです。よろしくお願いします。
715 :
711:2005/11/30(水) 13:23:14
>712 すみません
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
オートフィルで、時間(12:00:00 ,13:00:00〜)を連続で表示させたい時に
ひたすら伸ばしていくと[22:00:01]や[21:59:59]とずれてくることがあるのですが
その対処法があれば教えてください
716 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 13:43:24
Excelで(線等の)オートシェイプを用いて図形を描いたりするのですが、
たまに、描いた図形の左右を反転したい場合があります。
回転ならあるようですが、左右反転や上下反転は無いでしょうか?
Windows2000/XP、Excel2000を使っています。
もし、新しいバージョンのExcelで可能ならば買い換えようと思います。
>>681 ブックが読み取り専用になってませんか?
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 使えません
【4 VBAでの回答の可否】 不可
【5 検索キーワード 】 セル内改行
A1に ひろゆき
B1に 2ch
と入っているとして
A2にセル内改行して
ひろゆき
2ch
この様に表示したいんですが、
どなたかご指導願います。
719 :
712:2005/11/30(水) 14:06:10
>>715 今新規ワークシートのA1に12:00:00を入力して
下方に10000まで引っ張ってみたんだが
ずれてくる状況が再現できなかった
(10000行目は3:00:00)
変な書式や数式を入れてないか?
どういった状況で再現できるのか教えてくれ
こんな症状を聞いたことがないので、再現できないと対処法も考えられない
720 :
711:2005/11/30(水) 14:17:39
>715
いま私も時間だけ入れてやってみたら再現できませんでした・・・
日付から入れるとでてきます
2005/10/10 0:00:00
2005/10/10 1:00:00
で出るとおもいます
へんな書式ってこれの事かも・・?
721 :
681:2005/11/30(水) 14:17:41
>>717 ブックが読み取り専用で開かれた場合に、当然上書き保存に失敗するはずなのでエラー処理を行いたいのです。
722 :
721:2005/11/30(水) 14:36:00
んー、語弊がありますね。
本当にやりたいことは「上書き保存に成功したかどうかを判定する」ことです。
しかし実際には、保存失敗でもエラーにならない/メッセージ等が表示される ので困っています。
723 :
717:2005/11/30(水) 14:44:13
>>681 If GetAttr(ThisWorkbook.FullName) And vbHidden = 0 Then
msgbox "上書き保存しました"
ThisWorkbook.Close savechanges:=True
Else
msgbox "読み取り専用です。上書きできません"
End If
これでどうですか?
724 :
717:2005/11/30(水) 14:47:29
>>723 間違えた。
If GetAttr(ThisWorkbook.FullName) And vbHidden = 0 Then
じゃなくて
If GetAttr(ThisWorkbook.FullName) And vbRadOnly = 0 Then
でした。
725 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 14:57:28
>>720 同じ状況が再現できました。
Excelは日付、時刻をシリアル値という10進数で管理しています
1日が"1"
時、分、秒は1を割った少数で表現されます
1時間は1÷24で0.041666667なんだけど、これは実は割り切れてないので、
長くコピーすると誤差が出てくる、というのが原因だと思います
解決策としては色々あると思うけど、とりあえずすぐに思いついたのは
A1に2005/10/10 0:00:00
A2に=A1+(1/24)
で、A2を下方に引っ張ってみてください
726 :
721:2005/11/30(水) 15:08:34
>>724 ありがとうございます。
実は GetAttr では「ファイルのプロパティとしての上書き禁止」は判定できるのですが、「ブックを他人が
開いていたので、上書き禁止で開いた」場合には判定できないようなので、見送りました。
とりあえず、ThisWorkbook.ReadOnly の戻り値で判定しようと思います。
ただ、「読み取り専用で開いているか」と「上書きに失敗した」は厳密には異なるものなので、
果たしてこれでいいものやら・・・・
>>718 A2に
=A1&CHAR(10)&B1
を入力する。
その後せるの書式設定で[配置]タブの
折り返して全体を表示にチェックを入れる。
【1 OSの種類 .】 Windows XP SP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 vba # オーバーフロー 実行時エラー 6
すみません、教えてください。
11桁の数字を7でModしたいのですが下のように「#」がついてしまいます。
「実行時エラー 6 オーバーフローしました」とアラートが出てしまいます。
Sub ab()
Dim a As Double
Dim b As Double
a = 12345678912#
b = a Mod 7
End Sub
10桁までなら数値の後ろに「#」は付きません。
vbaでは11桁の計算は出来ないのでしょうか?
お教え下さい。宜しくお願いいたします。
729 :
718:2005/11/30(水) 16:07:00
>>727 うまく出来ました、
ありがとうございました。
730 :
711:2005/11/30(水) 16:13:38
>725
ありがとうございます。
出来ました 次からその方法でやってみます
>>728 VBAで使える整数は
2,147,483,648(10桁)までらしいです。
>>728 Mod演算子はLongの範囲しか受け付けないのでしょうがない。
#はDouble型の型宣言文字
>>731 それはLong型の場合。
Double型やVariant型を使えばそうとはかぎらない。
5000000000# * 1000 とかできるからやってみて。
733 :
728:2005/11/30(水) 17:30:46
>>731-732 なるほど‥。今から家に帰らないといけないので、とり急ぎお礼まで。
ありがとうございました。
734 :
682:2005/11/30(水) 19:05:20
>>705さん
思った通りにできました。
ありがとうございました。
735 :
◆EROEROeX96 :2005/11/30(水) 19:17:59
>>713 Openしてます。自己解決しました。
構ってくれてありがとう(∩Д`)゚。うわぁん
Name1 = "女子大生リスト.xls"
Workbooks(Name1).Worksheets("LIST").Range("A3:C18").Copy
以下略
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
ネットワークで繋がってるWin98マシンに共有フォルダをつくり
フルパスワード(仮に123)を入れて、ブックの読み込みをしています。
一度、共有フォルダを開ければ難なく読み込みができますが、PC
立ち上げ直後ではだめなので、共有フォルダを開けるようなマクロを
教えてください。
737 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 21:14:10
ヘルプだ ヘルプを見ろ!
739 :
736:2005/11/30(水) 22:17:29
>>738 紹介されたリンク先を読んでみたものの、良く分かりません(^^;
Dos窓から net use フォルダ名 パスワード で通るのは知ってるんですけどね。
簡単にマクロ化できると思ってたんですが、Netuse = False をヘルプで見ても
「キーワードが見つかりません」でした。数百人のPCにDos窓を開かせることを
考えると、他の方法を考えた方が現実的かも・・・
×良く分かりません(^^;
○分かろうと努力する気がありません(^^;
742 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 23:19:45
MsgBox "エラーが発生しました。"
プログラマがよく書くけど、こういうのって有難迷惑なのに気付かないのかね?
エラー内容やエラーコードを返せという意味で言ってるなら正しいが、
閉じるのが面倒とかいう意味で言ってるならm9(^Д^)プギャー
MsgBox "m9(^Д^)プギャーーーーーー!!!!!!!", vbCritical, "エラーだ!! コノバカチンガ!!"
745 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 23:56:26
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel97?
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 ワークシート 連結
あまりに基本的な質問になるかと思いますが、
複数のxslファイルを一つにまとめる方法を教えていただけないでしょうか
具体的いいますと
もとのシートがありまして、それを20程度に分けたものを複数の人が更新しているのですが
終業時にそれらを元の一つにまとめるといった作業をせねばならなくなりまして
やり方を聞いても一つ一つコピーと貼り付けを繰り返してくっつけていくと言われました
私としては何か方法があるのでと思うのですが・・・
746 :
736:2005/11/30(水) 23:57:08
もし、740が小学生未満なら"氏ね!"を、小学生以上なら"はいはい、エロスエロス"を
返すマクロを書いてください。
747 :
名無しさん@そうだ選挙にいこう:2005/11/30(水) 23:59:16
>>745 そんなの簡単じゃん!
一つ一つコピーと貼り付けを繰り返してくっつけていくだけだよ。
>>745 方法はあるよ
ただ君自身がその方法を拒否してるからどうしようもない
>>746 不可能
理由はExcelの"マクロ"は値を返さないからです
なぜならExcelでのマクロの定義は「引数を取らないSubプロシージャ」
Subプロシージャは値を返しません
値を返すのはFunctionプロシージャ、そう関数ってやつです
まあ条件的にはそれ以前の問題だけどね
749 :
682:2005/12/01(木) 00:26:04
>>734で解決したと言った者です。
お礼の後に気がついたのですが、
空白の欄(
>>682で言うと"C2"等)には数式が入っているため、( =IF(C2=●●,▲," ") )
D2の3ではなく、C2の空白がB2に表示されてしまいます。
Range("B1").Value = Range("IV1").End(xlToleft).Value
が右から順に左端を探してB1に入力というのは何とかわかりましたので、
数字だけ検索させる方法を探して、.valueを変えようとしたり、
シートの保護で数式を非表示にしてみたりしましたがダメでした。
条件の後出しになってしまい申し訳ないですが、もう一度お願いします。
Q&Aラウンジ ExcelVBAに出入りしてる「名無しさん」いる?
752 :
754:2005/12/01(木) 00:59:02
>>748 返答ありがとうございます
VBAを使うと出来るということでしょうか、そちらを少し勉強してみます
745 でした すみません
まー、どーでもいいが句読点はシッカリ打ってくれョo
返、答、あ、り、が、と、う、ご、ざ、い、ま、す。
V、B、A、を、使、う、と、出、来、る、と、い、う、こ、と、で、し、ょ、う、か、、、
そ、ち、ら、を、少、し、勉、強、し、て、み、ま、す。
>>682 Dim R As Range
Dim I As Integer
Dim J As Integer
Dim C As Integer
For I = 1 To 3
Set R = Cells(I, 256).End(xlToLeft)
C = R.Column
For J = C To 3 Step -1
If Left(Cells(I, J).Formula, 1) <> "=" And _
Cells(I, J).Value <> "" Then
Cells(I, 2).Value = Cells(I, J).Value
Exit For
End If
Next J
Next I
こんなんでどうでしょう?
【1 OSの種類 .】 Windows XP SP2
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 ほんの少し
【4 VBAでの回答の可否】 可
教えてください。取得したA1形式のアドレスをR1C1形式にするにはどうすればよいのでしょうか。
buf.ValueをR1C1形式にしたいのです。
よろしくお願いします。
Sub Sample()
Dim buf As Range
Set buf = Application.InputBox(Prompt:="セルを選択してください。", Type:=8)
MsgBox "アドレスは" & buf.Address
MsgBox "値は" & buf.Value
End Sub
Addressプロパティをヘルプで調べろよ
引数の概要を読めば解るはずだし
使用例としてR1C1形式を返すサンプルコードも載ってる
【1 OSの種類 .】 Windows 2000 SP4+
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 ほんの少し
【4 VBAでの回答の可否】 可
こんにちは。為替とか株式の4本値のデータがあって、各指標の4本値や移動平均とかの
指標を表示するグラフをもつBookがあるのですが、グラフの表示期間を指定すると
y軸の目盛りを自動的に変更してグラフを再描画するフォームを一念発起して作りました。
しかしフォームを一旦終了しないとフォーム下に表示されるグラフを変更できません。
目盛りの変更は一括して行われますが、フォームとグラフのタブとを行き来しながら(
フォーカスを移動しながら??)作業したいのですがどうすればよいでしょうか?
>>757 >buf.ValueをR1C1形式にしたいのです。
これがよく分かりませんが
buf.Address(ReferenceStyle:=R1C1)
だと思う
>>759 よく分かりません。
フォームと言うのはユーザーフォームのことでしょうか?
761 :
759:2005/12/01(木) 15:53:52
>>760 作ったもののプロパティを見ると”UserForm”とあるのでそのようです。
762 :
780:2005/12/01(木) 16:02:08
だとしたら、
>フォームを一旦終了しないとフォーム下に表示されるグラフを変更できません
と言うことですので
UserForm_Initialize にコードが記述されていると思うのですが、これを
UserForm_MouseMove 等に記述すれば可能かと思います。
764 :
762:2005/12/01(木) 16:06:33
760でしたね、失礼。
765 :
759:2005/12/01(木) 16:17:19
追伸:この”フォーム”はキーマクロの記録を元に作成したもので、グラフ上の
[期間変更] として作成した”図形”をクリックするとフォームが表示されます。
このフォーム上には
a) 表示期間を変更する指標を選択するチェックボックス
b) 表示期間を変更するグラフの種類(4本値/移動平均/オシレータ)を指定するボタン
(aの各指標にそれぞれ4本値/移動平均/オシレータのグラフがある)
c) グラフに表示する開始年月日〜終了年月日を指定するボックス
d) 実行ボタン
があります。[実行]ボタンを押すと、a)で指定した指標(djiとかNASDAQとか)の
うち b) で指定した種類のグラフが c) で指定した期間内で最高値と最安値が
グラフに納まるようにY軸のスケールを調整して一括して再描画されます。
ここで、このフォームを常に最上面に表示しながら、グラフのシートタブを
クリックして表示グラフを変更しながら、フォームを使ってグラフの表示期間を
変更したいのです。ところが、一旦フォームを閉じないとフォームの下に表示
されてるグラフシートタブをクリックできない(フォーカスがフォームに残ったまま)
なのです。操作性をよくしたいので、どなたかヒントだけでも結構ですので
よろしくお願いいたします。
766 :
759:2005/12/01(木) 16:19:30
>>762 さん。ありがとうございます。やってみます。
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 多少
【4 VBAでの回答の可否】 可
FormをSheet上に表示させたいと思います。
ただし常にSheetの右上隅に表示させたいのですが、
上手い方法が思いつきません。
よろしくご教示ください。
>>767 Sheetの右上隅はIV1セル(1行目の256列目)だよ
Sheetの右上隅ではなく、BookのWindowの右上隅じゃないの?
だとするならWindowオブジェクトのサイズや位置を返すプロパティの値と
UserFormのWidthから、表示位置を算出して表示させるだけでしょ
特定シートだけで表示させたければイベントで切り替えればいいし
"常に"ってのが意味不明だけど、"Windowをリサイズや移動しても"ってことなら
その手のイベントは標準ではWorkbook_WindowResizeくらいしか取れないので
他はAPI使ってフックするしかないかもな
まー、どーでもいいが句読点はシッカリ打ってくれョo
770 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 20:45:08
昔は、
行末には、
句読点を、
打たないのが、
基本だったんだが、
時代は、
変わったってことかね。
最近、
PCを、
弄りだした子は、
そんなことは、
知らないだろうけどな。
つまり、ココのスレで回答してる
>>768はジジイってこと?
レスするなら、答えを書けよ。
(知ったかクソだから書けないのかな?)
明治時代には、句読点を打たないのが「正式」だったらしい。
773 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 21:54:00
くどくてんってなに?
775 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 22:01:58
EXCEL2000等では文字や数式入力する左側に"="マークのボタンがありますり
ボタンを押すと自動的に数式に変換してくれますが
EXCEL2003では"="ボタンがありませんボタンの出し方を教えてください
>>775 このスレは句読点はシッカリ打たないと怒り出す子が居るから気を付けてo
777 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 22:19:02
Excel2003 VBAについてです。
Dim Arr() as integer
のように動的配列を宣言していて、
これをIsArray関数に渡すと、
データが入って無くてもTrueが返ってきてしまいますが、
データが入って無い場合にFalseを返す関数ってあるんでしょうか?
779 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 22:33:20
>>778 お前はもっと有効な事に
人生の貴重な時間を費やした方がいいんじゃないのか?
それがおまえの生きがいならいいが。
780 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 22:40:33
>>779 お前はもっと有効な事に
人生の貴重な時間を費やした方がいいんじゃないのか?
それがおまえの生きがいならいいが。
>>773 「ボウヤ」って、いかにもジイイ臭い書き方だね。
30過ぎのオッサンですか?
782 :
名無しさん@そうだ選挙にいこう:2005/12/01(木) 22:49:46
ヒント:コピペ
質問です。
サーバに置いたファイルを誰かが開いてるときでも、そのファイルを
開いてデータをコピーすることは可能でしょうか?
編集する必要はないので、読み取り専用で開ければいいのですが。
よろしくお願いします。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP
【3 VBAが使えるか .】 少しだけ
【4 VBAでの回答の可否】 可
ExcelXPではなく、Excel2002でした。
すみません。
ここで聞く前に自分でテストできる事だと思いますが、違う?
786 :
757:2005/12/01(木) 23:43:25
>>785 [読み取り専用] [通知]の窓を開かずにコピーしたいんですぅ。。。
Workbooks.Open(Filename:="\\NT01\Keiri\財務会計.xls", Notify:=True)
これだと、コンパイルエラーになってしまいます(><)
788 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 01:28:49
はあ?
>>789 違うだろ。
発音は短めに、もっと語尾を上げなきゃ。
さあ練習しよう。
「HA?」
(* ´Д`)ハァハァ?
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 ExcelXP
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
表に書いた数値を中央で揃えたいのですが上手くいかなくて困ってます。
例えば
5.69
18.36
-18.36
5.39**
を小数点の位置を揃えて、中央揃えにしたいのですが…
小数点の位置を揃える時点で「中央揃え」ではないのですが、
なんとか綺麗な表にしたいのです。
ご教授よろしくお願いします。
>>787 FileCopy "\\NT01\Keiri\財務会計.xls", "C\------\----\---.xls"
とかでもダメでしょうか?
>>793 セルの書式設定を数値にして、小数点以下の桁数を選択すればいいんでないの?
>>793 5.39**は数値じゃなくて文字列だから無理だけど
5.69、18.361、-18.36、5.3912みたいな数値なら
_ * 0.0000___;_ * -0.0000___
のような表示形式にすれば小数点位置を揃えて、任意の左右位置に配置できるよ
.以降の0の数は、小数点以下の桁数が一番多い物に合わせ
末尾の_は、セルの幅に合わせてスペースか_で調整
5.69が5.6900になるけど、別に値が変わる訳じゃないので気にしないで
末尾の0を表示したくないとか、数値だけでなく
文字列も揃えたいって条件を後出ししてくるならVBAになっちゃうかな
797 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 11:57:37
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
1.xlsの中でマクロ処理でデータを加工した後で2.xlsを開き、マクロで2.xlsの中にグラフを出力しています。1.xlsの中にはグラフは保持していません。
次に3.xlsにその2.xlsのグラフをコピーして3.xls上でグラフを整形し、印刷しています。
ここで問題が有るのですが、3.xlsを開く時にリンクされているファイルを更新するか?と
聞かれるのではいを選択しても3.xlsのグラフは最新版には更新されません。
最初にコピーしたグラフがずっと保持されていてグラフの中身を変化しても全く反映されません。
3.xlsでリンク元を確認すると1.xlsとなっています。手動で2.xlsを選択するとグラフが空白に
なってしまいます。
これを回避する方法がありましたら教えてください。
>>797 よくわかりませんが、
3.xlsにグラフをコピーするのではなく、
グラフの元データをコピーすればいいんじゃないでしょうか?
もちろん1.xlsは開いてるんだよね。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 不可
セルの色を条件によって変えたいんですが、
条件付き書式では上手くいかない(上手いやり方が分からない)ので困っています
例えると
一つ上の行のセルの値と値が違ったセルだけの色を変えると言ったのもです。
| A | B | C | D | E | F |
1 | |1〜3月|4〜6月|7〜9月|10〜12月|
2 | 2004 | 1,000| 1,000| 1,000| 1,000| 1,000|
3 | 2005 | 1,000| 2,000| 1,000| 6,000| 1,000|
4 | 2006 | 1,000| 1,000| 7,000| 1,000| 1,000|
5 | 2007 | 1,000| 1,000| 1,000| 1,000| 1,000|
上の例だとC3,C4,E3,E4,D4,D5のセルだけを違う色にといった感じです。
実際にはもっと多くの行と列なので一つ一つ手動で変えていくのはかなり苦痛で困っています
>>800 B3に条件付き書式 =B3<>B2
必要範囲に書式をコピペ
803 :
800:2005/12/02(金) 13:13:29
>>802 ありがとうございます
今まで条件付き書式は一括で範囲指定し使用するものとしか理解していませんでした
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 ExcelXP
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 不可
2点お願いします。
流動的なセルをsumの対象にしたいのですが、可能でしょうか。
たとえば、sum(A1+E1) と、今はE1ですが、
間に列が増えれば F1・・・X1・・・となってしまいます。対象は常に最右列です。
次に、sum(A1+X1)〜sum(Y1+X1)の和を求める式を、
最下行に入れたいのですがどうすれば良いでしょうか。
>>805 >sum(A1+E1)
=SUM(A1,E1)かA1+E1のどっちかにしようよ
それか、もしかすると+ではなく:なのでは?
>間に列が増えれば F1・・・X1・・・となってしまいます。
列が増えればってのは列を挿入したらってことか?
列やセルの挿入をしても参照先を変えたくないってならINDIRECT
データが増えたらってことなら↓
>対象は常に最右列です。
最右列は常にIV列、一番右にあるデータってことなら過去ログにその位置を取得する方法が出てる
>sum(A1+X1)
以下略
>の和を求める式を
そのまま解釈するとA1+X1+B1+X1+C1+X1+D1+X1+…ってことになり、
つまりは=SUM(A1:Y1)+X1*COLUMNS(A1:Y1)ってことになるが
>最下行に入れたいのですが
最下行は65536行目、一番下にあるデータの位置ってなら、関数でその位置を取得することは出来るけど
関数では何らかの操作(式を入れる)を実行する事は出来ないのでVBA使わないと自動で式を入れるのは無理
807 :
798:2005/12/02(金) 14:42:04
あら、
>>797はマルチさんでしたね。
>>805 我が家のEXCEL2003では=A1+E1としてB列にセルを挿入しても=A1+F1と
自動で更新してくれますが、ExcelXPでは分かりません。
どっかのセルに=A1+$X1〜=Y1+X1を入れてそれを合計すればいいんでないの?
でもExcelXP のことはよく分かりません
808 :
805:2005/12/02(金) 14:45:06
>>806 ありがとうございます!
変な表現で書いてしまったに関わらず、的を得たご回答を頂き恐縮です orz
「:」ではなく、「+」なのです
助かりました、ありがとうございました!
809 :
805:2005/12/02(金) 14:47:29
>>807 ありがとうございます!試行させていただきます!
810 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 15:13:34
Excel2000で数字が入っているある列の全てに’を付けて文字列に一括で変換したいのですがどうすれば良いのでしょうか?
811 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 15:19:54
【1 OSの種類 】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 不可
「アルバイト勤怠管理表の作成する。
月初に前月一月分のアルバイトの集計をします。
アルバイトは複数名在籍し、時給も全員同じではありません。
給与の計算方法は労働基準法に基づき、
5:00〜22:00通常時間は時給の100%、
22:00〜5:00深夜時間の時給の125%、
(食事)休憩は、昼1時間、夜30分とし、それぞれ時給からその時間分差し引きます。
各アルバイト別のアルバイト勤怠管理表作成には、最低でも、
氏名、所属部署、その月の基本時給、
日付別の勤務予定時間(出社、退社時間)と実際の勤務時間(出社、退社時間)。
日付別の(食事)休憩の有無、通常労働時間、深夜労働時間。
が一覧で印刷されるシステムを作成するよう指示されています。
入力作業の効率化を考え、自動化出来る所は出来るだけ自動化し、
引継ぎ後も誰でも操作しやすいシステムを構築すること。」
学校でこんな問題が出てさっぱりわかりません。
ヒントでもいいので何かありましたら教えください。
812 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 15:22:58
【1 OSの種類 】 Windows98SE
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか 】 いいえ
【4 VBAでの回答の可否】 不可
.| A. .| .B. | C |
1 | | ○ | |
2 | ○ | | ○ |
3 | | | × |
4 | | | |
5 | ○ | | |
6 | | | |
7 | | ○ | |
8 | | ○ | |
9 | | | |
で、A10を4、B10を1、C10を7という具合に
列の一番下にある"○"以下に"○"以外のセルが
いくつあるかカウントしたいのですけど
どうすればいいでしょうか?
よろしくおながいします
>>810 VBAで変換するか
テキストエディタに値を貼って
s/(^|\t)/\1'/g
とかで置換してからExcelに戻して
Excelで'を'に置換
後は
>>2※を読んでおけ
>>811 ヒント:ここは課題宿題には一切回答しないスレ
>>812 =9-MAX(IF(A1:A9="○",ROW(A1:A9),0))
でCtrl+Shift+Enter
814 :
812:2005/12/02(金) 15:47:06
815 :
797:2005/12/02(金) 16:02:23
>>798 2.xlsにあるグラフをいろいろな形で出力したいのです。
横長や並びが違う4.xlsなど多数作りたいのでできたら直接ではなく、間接的に
出力させたくて。
>>799 1.xlsは開いていません。1.xlsではマクロでグラフを作ったあとですぐに削除しているので、
1.xlsにはグラフデータは保持されていないので。
>>801 もう元の質問は落ちたのでマルチではないはずですが。
816 :
810:2005/12/02(金) 16:04:05
>>813 Excelに"置換機能"がありその中で"関数"を使うような方法で簡単に’を付け加える処理が出来るかなと思いました。
置き換えの出来るテキストエディタで置き換えをしたりVBAを使ったりは出来ないので今回は諦めることにします。
回答ありがとうございました。
817 :
810:2005/12/02(金) 16:08:38
Excelに読み込む前に'を付けてcsvファイルに変換→置換で'を'に変換する方法で解決しました。
> 3.xlsでリンク元を確認すると1.xlsとなっています。
> 1.xlsではマクロでグラフを作ったあとですぐに削除しているので
ソースが無いのにどうやって更新しろと?
819 :
797:2005/12/02(金) 17:15:55
>>818 わかりにくくてすみません。
>>797に書いてあるとおり2.xlsには最新のグラフが保存されてあります。
ですが、そのグラフを3.xlsから指定するとグラフの中身が空になってしまうのです。
>>819 >そのグラフを3.xlsから指定
ってどうやってますか。
こちらではグラフの元データのブック(同名シートがなければシートも)の選択しかできません。
821 :
797:2005/12/02(金) 18:01:45
>>820 グラフの指定は編集メニューのリンクの設定で行っています。
2.xls、及び3.xlsのグラフの「元のデータ」は何処にあるの?
823 :
820:2005/12/02(金) 18:27:13
んー。どうやってもグラフを選択できない。
その2.xlsの「グラフの場所」はシートですか、オブジェクトですか。
シートの場合、たとえばGaph1が選択に出てきますか。
オブジェクトの場合、そのグラフを指定してますか。シート指定ならグラフを指定できていないと思います。
824 :
797:2005/12/02(金) 18:31:09
>>822 2.xlsの元のデータがグラフのことでしたらどこにもありません。
1.xlsで作成したグラフのシートは2.xlsにコピー後すぐに削除しています。
3.xlsの元のデータを2.xlsにしたいのですが、そのやり方が分かりません。
グラフの元となる数値データのことでしたら別のファイルにあります。
1.xls 定期的に実行するマクロファイル 4.xls〜50.xlsを参照してグラフを作成して2.xlsにコピー コピー後グラフは削除
2.xls 4.xlsのグラフ保存用のファイル 実際は50.xlsまでの数分存在します。
3.xls 2.xlsで保存しているグラフを見やすく加工したファイル これもいくつかのパターンで存在します。
4.xls〜50.xls 定期的に実行してサーバー上から数値データを取得して保存。
分かりにくかったらすみません。
825 :
797:2005/12/02(金) 18:32:52
>>823 おっしゃるとおりです。確かにリンクの場所にはファイル名しか表示されないです。
またグラフの形式はオブジェクトです。
なんだ、単に元のデータが無いから更新出来ないってだけじゃん
>>825 「リンクの変更」は元データのある場所を指定します。
グラフの元データの場所を1.xlsから2.xlsに変更するとそこには元データはなく、
そのためグラフが空白になります。
828 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 19:18:20
0.83を
+0.83%
または
-0.83%
と表示させるのにはどうすれば良いですか?
お願いします
書式→セル→表示形式で %を選択すると
100倍されて%がつきました
829 :
797:2005/12/02(金) 19:19:15
>>827 と言うことはマクロでグラフを大量に作成する場合、グラフをすべて削除せずに保持しておかないと駄目なんですね。
ファイルがとてつもなく巨大になりそうですが、やってみます。
ありがとうございました。
831 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 19:32:40
>>830 レスありがとうございます
実際やってみると
0.00%,-8.30%
ように表示されたのですが?
832 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 19:35:21
+0.00"%";-0.00"%"
自己解決しました
ありがとうございます
自己解決って言うか、;と,を見間違えてただけだろ
834 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 19:56:18
+が抜けていたということか?
そっちかよ
836 :
682:2005/12/02(金) 20:39:56
>>756 ありがとうございます。
試してみます。
837 :
787:2005/12/02(金) 21:07:31
>>794 ファイルコピーではなく、ファイルの中のセル範囲を抜き出し、3行1組のデータを
1行ごとに整列させ、空白行を抜いてから番号順に並び替え・・・ ということを
やっています。
Application.DisplayAlerts = False で済むかと思ったらだめでした(><)
> (><)
がムカついたので放置。
>>837 ファイルコピーして、コピーしたファイルで作業。おわったら削除。
840 :
787:2005/12/02(金) 21:50:08
>>839 そういう手もありますねd(^o^)b
ところで、@だとOKなのに、Aでは何故だめなんでしょうか?
@ Workbooks.Open(Filename:="\\NT01\Keiri\財務会計.xls", Notify:=True). _
RunAutoMacros Which:=xlAutoOpen
A Workbooks.Open(Filename:="\\NT01\Keiri\財務会計.xls", Notify:=True)
841 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 22:06:40
(><)
(><)
(><)
842 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 22:27:29
どうゆう関数をつかっていいのかワカリマセン。お願いします
ちなみに2003です
設定金額○○円 割合
入札者a ○○円 ○%
入札者b ○○円 ○%
入札者c ○○円 ○%
落札者○○
と、こんな感じですが エクセラーの方アドバイスおねがいします
843 :
842:2005/12/02(金) 22:33:43
書きわすれましたが、最低金額落札者が 落札します
>>842-843 なんだか説明がよくわかりませんが、MIN,MATCH,INDEXあたりでしょうか?
句点を打たないから答えないo
846 :
名無しさん@そうだ選挙にいこう:2005/12/02(金) 22:52:22
>844
わかりにくくてすいません。割合を求めたいのです
何に対する何の割合でしょうか。
普通に=▲/△*100でいいような。
848 :
名無しさん@そうだ選挙にいこう:2005/12/03(土) 00:54:20
Excel2003についてです。
ある特定のsheetを間違って削除しないようにしたいのですが、
なにか良い方法はないでしょうか?
セルにロックをかける様に、
シート自体にロックをかけるイメージです。
※「そのシートを非表示にする」は無しでお願いします。
ブックの保護は?
850 :
848:2005/12/03(土) 01:50:06
>>849 ブックの保護だと、そのBook内全てのシートが保護されてしまい、
さらに、新規のシートが作成できないのでNoでお願いします。
実は特定のシートを削除しようとしたら、
「このシートは削除できません。」というメッセージを
だそうとしたいんですが、基本的に無理なんでしょうか?。。
つ Unprotect
シートの保護
853 :
名無しさん@そうだ選挙にいこう:2005/12/03(土) 09:29:03
excel2002、WindowsXP使用してます。
excelで、SUMとかAVERAGE等これだけは覚えたほうがいい関数を教えてください。
VBAも覚えたほうがよいのでしょうか?
ちなみに就職対策です。今のところ、事務の仕事を希望しています。
854 :
名無しさん@そうだ選挙にいこう:2005/12/03(土) 09:43:12
全くゼロからエクセルを覚えようと思うんですが、
何か良いサイトはありませんか?
>これだけは覚えたほうがいい関数
無し
個々の関数を覚えることより、Excelにはどんな処理が出来る関数があるのかを把握することと
ネストや配列数式のような式の組み方を覚える方が大事
個々の関数の引数の指定方法なんかはヘルプ見ればすぐに解るし
頻繁に使う関数は勝手に覚えてくる
>VBAも覚えたほうがよいのでしょうか?
覚えた方が良いか、覚えない方が良いかと問われれば、覚えた方が良いに決まってる
Excelに限らず表計算ソフトは、そのソフトが持つマクロを使えない内は「〜使えます」とは言えないからな
>何か良いサイト
はじめは「Excel OR エクセル 入門」@Google
その後、解らないことがあったら「解らないことの内容」@Google
それでも解らなかったら、ここを含めてExcel関係の掲示板で
具体的に何が解らないのか、何を知りたいのかを質問してみる
856 :
名無しさん@そうだ選挙にいこう:2005/12/03(土) 11:47:33
>>853 俺も
>>855とだいたい同じ考えだな
Excelが使える、ってことを売りにして求職しようと思ってるのなら
10個や20個関数覚えたって意味ないね
「Excelでこんなことできるのかな?」という疑問が沸いたとき、
ヘルプを見ながら自分である程度解決できるようにしよう
ヘルプの使い方に慣れたほうがいい
全ての関数はヘルプに書いてある
暗記する必要はない
DATEDIFはヘルプから消えちゃったけどなw
あぁ、あのバグ付き関数かw
本当は関数ごと消したかったんじゃないの?
>それでも解らなかったら、ここを含めてExcel関係の掲示板で
>具体的に何が解らないのか、何を知りたいのかを質問してみる
で、質問すると「ヘルプを見ろ」ですか?
860 :
名無しさん@そうだ選挙にいこう:2005/12/03(土) 21:49:15
>>859 ヘルプに書いてあるものをここで聞けばそう言われるのは当然でしょ。
「解らない」んじゃなくて「調べ足りない」だけなんだからさ。
無知なのは責めないけど、努力する気もなく人を頼るのは責められるべき事柄。
それに、ヘルプに書いてないことまで「ヘルプを見ろ」とは言われないだろ。
ただまあ、あのヘルプじゃあどうやって調べたらいいかわからないレベルの人には使えないような。
初心者のうちは検索キーワードが一番知りたいことだったり
"Windowsヘルプ"形式のヘルプファイルの使い方はPC初心者板で
a1=6,a2=1,a3=7・・・となっているとき、5以上の値を示している項をつめて表示したい(このばあいだったら、a1=6,a2=7・という風に、a2にはいってた1をなくす
)んだけど、何の関数使ったらいいんですか?
VBA使わなくてもできますか?
【1 OSの種類 .】 WindowsXp
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
>>863 >>14に書いてある通り、関数では値の書き換えは出来ないので
関数で詰めるとしたら別の列に詰めることになる
例えばB列を作業列に使ってC1=6、C2=7ってね
それでいいなら過去ログで何度も出た空セル部を詰める方法をそのまま流用できる
作業列使ったり別セルに詰めたりがイヤならVBAってことになるけど
VBAは使えるってことなのでそっちはご自分でどうぞ
>>864 どうもありがとうございます。
例えばB列を作業列に使ってC1=6、C2=7ってね
それでいいなら過去ログで何度も出た空セル部を詰める方法をそのまま流用できる
空セル部を詰める方法をgoogleで調べたり、ログを読み返したりしたのですが、いまいち何関数を使うのかがわかりません。
866 :
865:2005/12/04(日) 00:01:46
調べたら解決しました、ありがとうございました。
> ログを読み返したりしたのですが
十数分で38スレ読み返すとは……お見それしました m(_ _)m
868 :
865:2005/12/04(日) 00:12:04
ここで回答してる人って1人だけ?
漏れも質問していい?
質問していいかどうか聞くってことは、
ダメって言われたら諦めるってことだよね。
んじゃ…
>>869 ダメ、絶対に。
> ここで回答してる人って1人だけ?
いいえ
> 漏れも質問していい?
誰に聞いてるの?
872 :
名無しさん@そうだ選挙にいこう:2005/12/04(日) 11:33:15
Excelのマニュアルで、ちびまる子の花輪君みたいな人が出ている本があったと思うのですが、
ご存知ないでしょうか?
Excel2000を使っています。
知合いからスケジュール表の雛形をもらったのですが、
列が日付になっていて開始列の日付の部分に日付を入力すると
その右以降の列が自動的に日付が入ります。
これはその列の式に、=RC[-1]+1 のような感じになっているので
理解できるのですが、どうしてもわからない事があります。
というのは、その日付が土曜、日曜になるとその列が勝手に背景色が
グレーにかわるようになっているんです。
開始日付を変えるとその日付を元に日付と列の色がすぐにかわります。
で、その色がかわっているセルの書式を見てもパターンのところで色が設定
されているわけではなく、セルの背景色を変更してもその色が
反映されないようになっており、一体その色設定がどこで行なわれている
かわかりません。起動時にマクロを無効にしてもそのセルの色は設定が
されるのでマクロで実現しているわけではないと思います。
その知合いももらったファイルらしくどうやってそれを実現しているか
わからないとのことでした。
何かアドバイスを頂けますとうれしいです。よろしくお願いします。
874 :
名無しさん@そうだ選挙にいこう:2005/12/04(日) 12:24:17
条件付書式になってるんじゃね?
Weekday関数使って土曜日の場合に背景色かえるの。
おーーー。
ありがとうございます、ありがとうございます、ありがとうございます。
まさにそれでした。すっきりしました。
876 :
875:2005/12/04(日) 13:39:13
教えてくんですみません。条件付書式を複数列に一気に設定するには
どうしたらよいでしょう?
=WEEKDAY(R[-1]C,2)>5 という条件付き書式設定をし、
この書式を行方向にコピーしたいのですが、コピーした時に
=WEEKDAY(R[-2]C,2)>5
=WEEKDAY(R[-3]C,2)>5
となるようにしたいのですが、コピー先でも常に、
=WEEKDAY(R[-1]C,2)>5
となってしまいます。
うまくやる方法はないでしょうか?
列方向が日付、行方向が項目で行列たくさんのセルがあるので
一括して設定させたいのです。
アドバイスよろしくお願いします。
877 :
名無しさん@そうだ選挙にいこう:2005/12/04(日) 13:52:21
Excel2003についてです。
あるシートに表とそのグラフがあった場合に、
新しいBookへそのシートをコピーすると、
コピー後のグラフの「データ範囲」はコピー元Bookの
表を選択しますが、
コピー後の表を選択させるにはどうすればいいんでしょうか?
>>876 相対参照の名の通り、式の相対位置で値が変わるのは参照のみ
-1、2のようなものは参照ではなく数値なのでセルが変わっても値が変わることは無い
行方向で式内の数値を変化させたいときは、COLUMN関数の引数に相対参照を入れる方法がある
そのままだと右に行くほど数値が増えるので、減らしたい場合は「数値-COLUMN(参照)」などとする
あとは自分でがんがれ
>>877 ちゃんとシート自体をコピーすればそうはならないよ
おそらく君は、シートをコピーしてるんじゃなくて、シート内容を別ブックのシートに張り付けてるんでしょ
この操作では当然「データ範囲」は元ブックのものになる
元ブックのシート自体ではなく、シート上のデータやオブジェクトを貼っただけなんだから当たり前だよね
シートタブ右クリックの「移動又はコピー」から操作すれば、同シート内の参照は保持される
879 :
名無しさん@そうだ選挙にいこう:2005/12/04(日) 15:51:38
グラフについて教えていただきたいです。
月別の数字の変化を折れ線グラフにしています。
1月〜12月でまとめるのではなく、4月〜翌年3月でまとめたいのですがやり方がわかりません。
作表の段階で4月、5月、6月、7月、8月、9月、10月、11月、12月、1月、2月、3月と並べてみても、
グラフにすると1月、2月、3月、4月、5月、6月、7月、8月、9月、10月、11月、12月と並びかわってしまいます。
ご教授ください。
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2001
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】否
【5 検索キーワード】グラフ、年度
【1 OSの種類 .】WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel 虚数
Excelで虚数を使った計算をしたい(具体的には1/(i*100*0.23))をしたいのですが、どうすればよいでしょうか。
>>879 おそらくシリアル値で年度が全て同じになってるのだろう
文字列で4,5,6,7,8,9,10,11,12,1,2,3月という表を作ると
[4,5,6,7,8,9,10,11,12,1,2,3]というグラフになる
シリアル値で2005年4,5,6,7,8,9,10,11,12月、2005年1,2,3月という表を作ると
[2005年1,2,3,4,5,6,7,8,9,10,11,12]というグラフになる
シリアル値で2005年4,5,6,7,8,9,10,11,12月、2006年1,2,3月という表を作ると
[2005年4,5,6,7,8,9,10,11,12,2006年1,2,3]というグラフになる
>>880 名前の定義を使う
挿入→名前→名前の定義の名前にiを入れて、参照範囲に=100とか入れる
というか、参照でいいような気もするけど何か参照じゃまずい事情でもあるの?
>>880 "excel 虚数" でgoogleで検索したら2番目に出てきたけど
そういう回答を求めてるのでなくて?
「具体的には1/(i*100*0.23)」←の意味がよくわかりません。
これ自体がすでに数ですけど、(-i/23)にしたいってことですか?
883 :
名無しさん@そうだ選挙にいこう:2005/12/04(日) 23:08:33
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】少し
【4 VBAでの回答の可否】可
同ブック内でのシートのコピーで、コピーされたシートがアクティブにならない方法、
または、コピー元を再びアクティブにするコードを教えてもらえますでしょうか?
Dim WS as WorkSheet
Set Ws=ActiveSheet
--シートコピーのコード----
Ws.Select
こんなんでいかが?
885 :
883:2005/12/05(月) 06:56:26
>>884 ありがとうございます。帰ってやってみます。
886 :
名無しさん@そうだ選挙にいこう:2005/12/05(月) 12:00:58
【1 OSの種類 .】WindowsXP
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel シート 反映
複数の「データシート」をメインの出力用のシートに反映したいのですがどのようにすればよいでしょうか?
今このようにやっています。メインA1-A3にそれぞれ結果を出すようにして、 メインのシート内に入力セルを用意しました。
入力用のセルに
シート名 列 行
BA1 BB1 BC1
シート2! C 1 ←セルに入力する値
シート2のC1は名前が、C2以降にはそれぞれ情報がつづきます
でこれをA1-A3で反映したいのですが、今の式だと
シート2!C1と表示されるか又は=NAME?
と表示されてしまいます。
どうすれば出力用のシートに別シートのセルを指定して表示できるのか
どなたかご教授お願いします _(。_。)_
頭に"="が付いてないとか、そんな話じゃないよね
>>886 > 今の式だと
> シート2!C1と表示されるか又は=NAME?
> と表示されてしまいます。
>>2・8に書いてある通り、その式をここに書けよ
INDIRECTで解決するっぽい気もするがな
A B C
1sheet2! C 1
2
3
とかで
=A1&B1&C1
って式を作って
sheet2!C1
って表示させてるんじゃない?
条件によって参照先を変えたいんですかね?
だとしたらifやvlookupを使えばおkじゃないでしょうか?
891 :
886:2005/12/05(月) 14:07:31
すみません式も書き忘れていましたm(_ _)m
=BA1&BB1&BC1
でやってみたところ
シート2!C1と表示され
=INDIRECT(シート2!B2:B250,BA1)
だと#VALUE!と表示されてしまいますorz
もうすこしググってきます。みなさんありがとう。
892 :
名無しさん@そうだ選挙にいこう:2005/12/05(月) 14:25:05
エクセルに詳しい方に突然ですが質問です!!!
メールアカウントに送られてきた添付ファイルのタイトルを開いたときに自動的に
マクロで取り込むにはどうしたらいいのでしょうか??
>>891 とりあえずINDIRECTの使い方間違ってる
INDIRECTは文字列を与えて参照を返す関数ね
=Sheet1!A1
と
=INDIRECT("Sheet1!A1")
と
A2に文字列で「'Sheet1!A1」と入れて
=INDIRECT(A2)
は全てSheet1!A1を参照する式になる
あとはヘルプ読め
>>892 >>2・7
894 :
886:2005/12/05(月) 14:44:47
シートを選択するのがどうも出来なかったので
=VLOOKUP(入力するセル,シートの名前!A1:選択したセルの範囲,表示するセル,FALSE)
でとりあえず解決しました。
どうもありがとうございました。
895 :
名無しさん@そうだ選挙にいこう:2005/12/05(月) 19:17:37
【1 OSの種類 .】WindowsXP,2000(社内LAN混在)
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 excel 共有
ブックの共有で複数端末から入力、保存してます
変更履歴を保存しないにしてもファイルが肥大化していきます
例えばさっきみたら21Mでしたが
一度共有解除すると2.7Mでした
何が蓄積されているんでしょうか?
また防ぐ方法はあるでしょうか?
ある(
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel2002
【3 VBAが使えるか .】いいえ
【4 VBAでの回答の可否】 否
【5 検索キーワード 】 置換・COUNTIF
テキストファイルをエクセルで読んだら、置換・検索が出来ないみたいなんです。
試しにそのファイル中に別の文字列を書いたらそれは検索の対象になりました。
どうすれば置換の対象になるのでしょうか?
あと、おそらく同じ理由でCOUNTIF関数がうまく使えません。
> どうすれば置換の対象になるのでしょうか?
うちでは普通に検索置換出来てるので
「普通にやれば置換の対象になる」としか言えない
因みに当たり前のことだが、検索文字列と一字一句違わない
文字列が無ければ、検索置換は出来ない
COUNTIFも同じ
それと.txtの場合、Tabが無ければ全てA列に表示されると思うので
B,C列上にあるように見えてもA列から繋がったひとつの文字列だったりする
逆にTabがあると繋がって見えても別々の文字列だったりする
それと、とりあえず対象ファイルの内容、検索文字列、検索オプションの設定くらい書こうよ
はい。すんまそん。
900 :
ぺーぺー:2005/12/06(火) 00:20:10
質問があります。(質問の仕方に不備がありましたらすみません)
今電気磁気学の課題に取り組んでるのですがエクセルで、
V=1/(1+(y+1)^2)^0.5-1/(1+(y-1)^2)^0.5
のyをー3〜3までで0.2刻みで計算したいのですがやり方がわからなくなってしまいました。
説明書を読んだのですがそれらしい情報は得られず仕舞いで。。。
どなたかやり方をお教えいただけないでしょうか。宜しくお願いします。
^2)^ ←これは、(^3^)とかだと、ぼるじょあに似てダメなのかね?
VBAについて質問させてください。
FOR NEXT のマクロが主なプログラムを実行するたびに、そのプログラムの実行速度が遅くなるのですが、
原因としては何が考えられるでしょうか?
FOR NEXT の回数はかなり多いです。
>>902 ループが多ければ、実行速度は遅くなります。
組み方を考え直せば、少しは速くなるかもしれません。
エクセルVBAのことで質問なのですがある文字列の中に漢字が入っている場合、
何らかの値を返すにはどのようにすればよいのでしょうか?
例えば、
今日の午後 → True
きょうのごご → False
今日のごご → True
キョウのごご → False
キョウの午後 → True
キョウのごご → False
キョウの午後 → True
の様な感じで返すにはどのようにすればよいでしょうか?
>>905 ヒント:文字コード
因みに
「VB言語(VBA)で任意の文字列に漢字が含まれているかどうかをブール値で返す」
はExcelに全く関係無いVB言語に関する質問なので
これで解らなくてもここではこれ以上聞かないでね
>>2・7
907 :
名無しさん@そうだ選挙にいこう:2005/12/06(火) 14:47:51
【1 OSの種類 .】 Windows xp
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
きょうの日付から2週間前はたとえばセルの色を黄色にして超えたものは灰色にするのはどんな方法がありますでしょうか?
>>907 条件付き書式で、TODAY()-14と比較
909 :
名無しさん@そうだ選挙にいこう:2005/12/06(火) 15:28:56
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2003Pro
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル 特殊グラフ
エクセルでグラフを作っています。
一部分だけ突出した値がある場合、縦軸の値を、
0 10 20 30 1000 1010 1020 1030
みたいに、間を抜いて表示させる事は可能でしょうか?
910 :
909:2005/12/06(火) 15:39:57
すいません。テンプレの出来ないことに載ってました。
失礼しました。
911 :
907:2005/12/06(火) 15:49:24
条件書式でやってみたのですが、たとえば過ぎた日を黒くするので値より小さいと選んで反映されるのですが
空白セルまで塗りつぶされてしまいます。どうすれば回避できますか?
アドミニストレイター権限のexcelのファイルをローカルに保存したのですが
加工する為にファイルを開こうとすると読み込めません。
うまく読み込む方法(最悪テキストエディタでCSV)で読む方法はあるでしょうか?
宜しくお願い致します。
XPのSP2
excelはoffice2000のです。
>>913 そのファイルを作った人に聞いてください
915 :
名無しさん@そうだ選挙にいこう:2005/12/06(火) 16:40:16
【1 OSの種類 .】 Windows98SE
【2 Excelのバージョン 】 Excel97
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
OFFSET関数の基準を、列の最大値が入ってるセルにしたいんですけど
どうすればよいのでしょうか?よろしくおながいします。
916 :
907:2005/12/06(火) 16:43:02
わからない??
誰かマクロで教えて下さい条件設定めんどくさい。
>>916 条件付き書式で書くのが一番楽でしょ。
または二週間前の日付を検索して書式を置換。
二週間を越えて前のものも検索アンド書式置換。
918 :
907:2005/12/06(火) 16:57:24
それは手動ですよね。自動で置き換えたいので、、
あと一つ新規に書き換えられた項目の文字を自動で赤文字にするのって可能?
>>915 OFFSET関数の第二引数まで使っての基準位置指定で良いなら
第一引数をその行の1行目への参照にして
MATCH、MAX関数で何行目に最大値があるかを返して第二引数に当てれば良い
OFFSET関数の第一引数のみで直接指定したいなら
先ほどのMATCH、MAXをINDEX、OFFSET関数等に入れて参照を返せば良い
結局は「列の最大値が入ってるセル」への参照を返す式が作れれば良いだけの話
MATCH、MAXは最大値がある位置を数値で返し、
INDEX、OFFSET等は位置を表す数値から参照を返すことができる
ADDRESS+INDIRECTって手もあるけどね
>>918 「または」以降の部分は手動だろうけど、条件付き書式は自動
自動でやりたければ条件付き書式を使えば良いだけのこと
=AND(セル<>"",セル[比較演算子]TODAY()-14)
> あと一つ新規に書き換えられた項目の文字を自動で赤文字にするのって可能?
VBA使えば可能
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Value <> "" Then Target.Font.ColorIndex = 3
End Sub
複数セルを一括して変更する場合は考慮してない
それとこれだと書き換える度に赤文字セルがどんどん増えていくが
リセットのタイミングについては書いてないので必要なら手動でやってくれ
対象範囲も書いてないので全セル対象
ついでに日付による書式変更の方は、
「条件付き書式で出来るとしてもVBAがいい」とかは条件後出しになるので言わないでね
920 :
915:2005/12/06(火) 19:12:04
>>919 理解するまでにちょっと時間かかりそうなんでお礼だけ逝っときます
とりあえずさんくす
【1 OSの種類 .】 Windows2000
【2 Excelのバージョン 】 Excel2000
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 否
三十名の名簿があります。
この名簿から毎日出席した二十数名の名簿を作りたいのです。
名簿の順番は、早くきた順番なので毎日違います。
簡単にできる方法はないでしょうか。
今は、コピーと貼り付けで行っています。
よろしくお願いいたします。
低レベルですが、これは1行にまとめられるでしょうか?
Sub Test()
ActiveSheet.Range("B2").Value = ActiveSheet.Previous.Range("B2").Value
ActiveSheet.Range("C3").Value = ActiveSheet.Previous.Range("C3").Value
ActiveSheet.Range("L4").Value = ActiveSheet.Previous.Range("L4").Value
End Sub
923 :
名無しさん@そうだ選挙にいこう:2005/12/06(火) 20:03:26
家計簿を作ってるのですが、
購入日、年(year)、月(month)、品目、金額
のようなフィルード構成の支出データベースがあるとして、
年毎、月毎の集計は「年」「月」フィールドを参照して sumif で簡単に出せるのですが、
年+月毎の集計をするにはどうしたらいいのでしょうか?
とりあえず年毎にブックを分けるしか思いつかないのですが・・・
>900
たぶん大学一年生でExcel触ったことないんだろうけど、友達を作って教えてもらいなさい。
トータルで考えてそっちのほうが実りのある大学生活を遅れるようになるから。
そもそもy=a*x+bで同じ事が出来れば特に難しいことはない問題だろう?
925 :
ゴッホ ◆lkGoghDAZs :2005/12/06(火) 22:39:34
>>921 具体的な説明をしたほうが回答得やすいよ。
その説明じゃ、何がどう入力されているのかわからない。
>>922 関数を使うのはダメ?
とりあえず、プロシージャの中は一行で済むけど。
Sub Main()
CopyData "B2,C3,L4"
End Sub
Private Function CopyData(Hanni As String)
Dim MyCell As Range
Set MyCell = Range(Hanni)
For Each MyCell In MyCell
MyCell = ActiveSheet.Previous.Range(MyCell.Address)
Next
End Function
>>924 =SUM((B1:B100=2005)*(C1:C100=1)*E1:E100)
と入力し、Ctrl + Shift + Enter を押せば、SUMIFの複数条件みたいなのができる。
上記例は、2005/1。
でも、年/月のフィールドをつくって、「集計」機能を使って、グループ化するほうが、楽だと思うけど。
変数のネーミングのやり方が分かりませーーん(><)
先生に聞いても、なんでも構わないとか言って私を避けています・・・・
誰か優しく教えてくださぁい♥
>>926 うんこ
ちんこ
まんこ
とか、おすすめ。
ボインを取る
Sheet → Sht、Range → Rng など
myを頭に付ける
Sheet → mySheet、Range → myRange など
このスレってレベル高いので、いつも参考になります
処で、MOS(エクセル初心者なので最初はspecialistから)を受けようと思うのですが、お勧めの参考書や
問題集はどんなものがあるでしょうか
ご教示いただければ幸いです
930 :
922:2005/12/07(水) 00:35:29
excel2002、winXPを使用しています。
セルの幅や高さがバラバラになってしまいました。
(例えば、幅広のセルがあったり幅の狭いセルがあったり)
↓こんな感じ
A B
_____________________________________
______________________|______________|
| |
______________________|______________|
______________________|______________|
シートを新しく作るとどのセルも高さ・幅が同じですよね。
そのようにセルを↓こんな感じ戻すにはどうしたらいいのでしょうか?
A B
____________________________________
|_________________|__________________|
|_________________|__________________|
|_________________|__________________|
自分の説明が分かりにくいと思いますが、分かる方がいましたらお願いします。
932 :
931:2005/12/07(水) 13:44:59
表がズレた('A`)
シート全体を選択して行高や列幅を指定すれば全て同じになるよ
>>932 Ctrl+Aでシートを全選択。
列頭のセル上(A、B、…ってとこ)で右クリック、「列の幅」を選択して指定。
ないしは、全選択状態で列の幅をつまんで動かす。
ところで、このセルの幅と高さのデフォってさ
幅 8.38
高さ 13.5
単位はなんなんだろうね?
937 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 15:33:25
>>935 もともとアメリカのソフトなんだし、インチぢゃねーの?メートルか?
キーワードは?
940 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 16:02:30
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 入門書1冊
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 EXCEL メニューバー
メニューバーに「データ」ってあったと思うのですが、
なくなっていました。
今現在
ファイル→編集→表示→挿入→書式→ツール→グラフ→ウィンドウ→ヘルプ
となってます。
「データ」を元通りいれることはできないでしょうか。
よろしくお願いします。
>>940 ツールバーをリセットする
方法は・・・・・ググれ
あるファイルを消すだけだからな
つーかVBA入門書1冊書けるだけのレベルって結構スゲーなw
942 :
940:2005/12/07(水) 16:24:01
>>941 解決しました。ありがとうございました。
はい、読んだだけです。3時間程度で読めるやつをw
943 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 17:35:06
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel2003
【3 VBAが使えるか .】 NO
【4 VBAでの回答の可否】 否
A B
1番 山田
2番 山本
3番 山下
既に入力済みがあり、以降 Aに1番と入れるとBに山田。これの逆で、Bに山田と入力すると1番。
と出るようにしたいです。どのようにしたら良いのでしょうか?
944 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 18:15:31
【1 OSの種類 .】 Mac OS 10.3
【2 Excelのバージョン 】 Excel2004
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
次のような駅伝タイムの表を作りました。
http://img218.imageshack.us/full.php?image=book16pz.jpg 今回のデータを入れると最速記録を超える記録を入力した場合、最速記録が自動更新されるようにしたいです。
画像での説明ですと、C2に今回のAさんの記録「53」を入力します。
Aさんの最速記録は「56」で、最速記録より早くなったので、今回入力の「53」が
B2の最速記録に自動的に書き換わって欲しいです。
Bさんの場合、逆にタイムが悪くなったので、最速記録の時間は変わらない。
Cさんの場合もタイムに差が無いので、最速記録は換わらない。
欲を言えば、最速記録よりも10%遅くなった場合に「反省点の記入:」というようにDに表示させたいです。
よろしくお願いします。
945 :
931:2005/12/07(水) 18:24:48
>>943 MATCHとINDEXで一致行対象列の値を返す式を
A列B列双方に入れておけば可能
ただし循環参照になるので、オプションで反復計算設定必須
あと、当たり前だがA4に2番と入力して、B4に山本が返された後
B4を山下に修正してもA4は2番のままで山下に対応する3番にはならない
そういう部分や反復計算でエラーが返るのが不満ならVBAだな
>>944 Mac+Excel2004の環境がないから動くかわからないが
Winだとこれで記録更新時の書き換えと、10%以上遅くなった場合の処理が出来る
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("C2:C4")) Is Nothing Then
If Target.Value < Target.Offset(0, -1).Value Then
Target.Offset(0, -1).Value = Target.Value
ElseIf Target.Value >= Target.Offset(0, -1).Value * 1.1 Then
Target.Offset(0, 1).Value = "反省点の記入:"
End If
End If
End Sub
947 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 18:53:30
【1 OSの種類 .】 Windows XP Pro SP2
【2 Excelのバージョン 】 Excel 2003 SP1
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 Excel MSComm
PC1: Excel使用
PC2: シリアル通信ソフト使用
PC1からPC2に以下のプロシージャで"hoge"が送れました。
Private Sub Command1_Click()
Set mscomm1 = CreateObject("MSCOMMLib.MSComm.1")
mscomm1.CommPort = 1
mscomm1.Settings = "9600,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "hoge"
mscomm1.PortOpen = False
End Sub
PC2からデータを受け取ろうと、以下のようにDo...Loopを使ったところ、
負荷がかかりすぎるようでExcelが応答なしになってしまいます。
どのようにすればよいか教えてください。
Private Sub Command1_Click()
Set mscomm1 = CreateObject("MSCOMMLib.MSComm.1")
mscomm1.CommPort = 1
mscomm1.Settings = "9600,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "hoge"
Do Until mscomm1.CommEvent = comEvReceive
Loop
MsgBox mscomm1.Input
mscomm1.PortOpen = False
End Sub
948 :
943:2005/12/07(水) 19:07:49
>>946 MATCHとINDEXで試してみました、今確認した限り問題はありません。
もし、不満等出てきたらVBAを勉強しようと重います。どうもありがとうございました。
949 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 19:12:31
>946
ありがとうございます!!!
>>947 > Do...Loopを使ったところ、
> 負荷がかかりすぎるようで
ループの中が空なんだから当たり前だろ
mscomm1.CommEvent = comEvReceive
の比較演算を、一致するまで絶え間な繰り返せって命令してるんだからな
WaitかAPIのSleepでも入れなよ
951 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 21:42:04
1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 否
【4 VBAでの回答の可否】 可
【5 検索キーワード 】
棒グラフ上に、統計で使う有意差があることを示す記号をつけるには
どのようにしたらよいのか教えて下さい。記号の名前がわからないのですが、
[ を横にしたようなものに、*がついているものです。
拙い質問ですみませんがよろしくお願いします。
952 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 21:49:13
1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2002
【3 VBAが使えるか .】 初心者
Dim R As String
R = "Range("A3", Range("A65536").End(xlUp))"
これだと、コンパイルエラーが出ます。
ヘルプると「プロシージャ呼び出しで、かっこが正しく使用されていません」とのことですが、何が悪いんでしょうか?
>>951 Excelには用意されてないのでオートシェイプ等で作れ
>>952 どっちがやりたいのかしらんが
Dim R As String
R = "Range(""A3"", Range(""A65536"").End(xlUp))"
Dim R As Range
Set R = Range("A3", Range("A65536").End(xlUp))
Dim R As String
R = Range("A3", Range("A65536").End(xlUp))
まさかな
【1 OSの種類 .】 WindowsXP
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 はい
【4 VBAでの回答の可否】 可
いま、ほとんど何も分からずに、マクロ組んでます。
質問なんですが、特定のセルに現在時刻を打ち込みたいのです。
そのようなモジュールかプログラミングは、
どのようにしたもんでしょうか?
「Ctrl + :」を自動マクロで拾ってみたのですが、
同じ時刻だけでてしまい、使い物になりませんでした。
>>954 そっちの方向だとするとVariant型で配列受け取りかな
RがStringだと、EndプロパティがA3を返す場合以外はエラーになる
>>955 Range("A1").Value = Time
957 :
952:2005/12/07(水) 23:11:15
>>955 Cells(1, 1).Value = Now()
Cells(2, 1).Value = Time()
とか
959 :
名無しさん@そうだ選挙にいこう:2005/12/07(水) 23:47:23
>このスレってレベル高いので、いつも参考になります
そう思える人って凄いね(w
知ったかクソの間違いレスも多いのに・・・
真ん中に印刷できません
メニューから「ファイル」→「ページ設定」を選択
「余白」タブ→「ページ中央」欄にある「水平」をチェック
でいいはずですがどうしても右寄りです
初歩的な質問ですがよろしくお願いします。
Excelの印刷時の位置合わせは文字単位ではなくセル単位なので
例えば
[ 123456789]
というセルを
┃ ┃
の中で中央に配置すると
123456789を中央に配置した
┃ [ 123456789] ┃
ではなく、[ ]を中央に配置した
┃ [ 123456789] ┃
┃ 123456789 ┃
のようになるされる
[ ]は罫線を入れてなければ見えないので右寄りに見えるが
これがExcel(及び、多くの表計算ソフト)の中央寄せの仕様
更には
[ ][ ][ ][ ][aaa ]
の場合、文字が入ってる5つめの[ ]ではなく、1つ目の[から5つ目の]までの単位で中央に寄せるので
┃ [ ][ ][ ][ ][aaa ] ┃
┃ aaa ┃
のようになるが、これもきちんとした水平センタリングの結果
962 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 00:39:23
失礼します。グラフのことで質問させてください。
y=300に他の補助線とは違う色の線を引きたいのですが
こういった場合はどうすればよいのでしょうか。
状況を説明すると、今縦の棒グラフを作っていて
y>300以上は平均以上、y<300なら平均以下というのを
わかりやすくするためにy=300に赤い境界線を引きたいのです。
初歩的な質問で申し訳ないですが、よろしくお願いします。
963 :
960:2005/12/08(木) 00:48:00
早速のレスどうもです。
ですが、やや意図していること違うようで、
質問の仕方を変えてみます。
余白をすべて0にすると右は端まで5ミリくらいまで
表示できるのですが左端はまだ15ミリくらいは余白ができてしまいます。
右の余白を左と同じようにしようとすると
左端のセルが次ページになってしまいます。
何が原因なんでしょうか?
因みに表なので罫線は入っています。
Excelは表計算ソフトなので細かいレイアウトは得意ではありません。
(にしても左端のセルが次ページに、て何が原因だろう?)
965 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 01:11:04
>>960 プリンターの設定で、綴じ代とか設定されているんじゃないの?
967 :
907:2005/12/08(木) 09:43:21
ありがとうございます <<919
自動で変化したのをたとえば5日後に黒色の文字に戻すにはどう構文を追加すればいいでしょうか?
日付なら出来る気がしますが、文章だと??
タイミング的にはまた新規に入力された時や日にちがたった時にカラーインデックスを元に戻したいのですが。。
968 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 10:38:23
1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 少々
【4 VBAでの回答の可否】 可
あるリストから項目を選ぶと次の項目の選択肢が絞られて出て、点滅やフラッシュするとか出来るのかな?
vlookup使うのはわかるけどスクリプトか、、、
▼━質問テンプレ ━━━━━━━━━━━━
【1 OSの種類 .】 Windows 2000
【2 Excelのバージョン 】 Excel 2000
【3 VBAが使えるか .】 少し
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 「SaveCopyAs ユーザーフォーム」 「SaveCopyAs アプリケーションエラー」
ユーザーフォームを使った後、SaveCopyAsの後にSave関連を実行するとExcel自身がアプリケーションエラーで落ちてしまいます。
ユーザーフォームの中の関数を実行しなくても同じでした。
下記は実際に落ちてしまう例のソースコードです。
Sub test()
Load UserForm1
Unload UserForm1
ThisWorkbook.SaveCopyAs "c:\backup1.xls"
ThisWorkbook.SaveCopyAs "c:\backup2.xls"
End Sub
ユーザーフォームのコードの中身は空です。
フォームもVBEでユーザーフォームの挿入を行なっただけなのでコントロールの配置などは何も行なってません。
SaveCopyAsの前はロードしてアンロードしてるだけです。2度目のSaveCopyAsでアプリケーションエラーが発生しました。
この2度目のSaveCopyAsを、SaveやSaveAsに変えても同じでした。
ファイルは作成されるのですが、backup1.xlsもbackup2.xlsも元ファイル(22KB)よりも若干大きくなり、また両者ともサイズが異なりました。
backup1.xlsが27KB、backup2.xlsが37KBでした。
Excelが落ちた後はタスクマネージャを見るとExcelのプロセス自体は残っていて、backup2.xlsをつかんだ状態になっています。
どなたか、原因や解決策をご存じの方がいらっしゃいますでしょうか。
よろしくお願いします。
>>967 > 自動で変化したのをたとえば5日後に黒色の文字に戻すにはどう構文を追加すればいいでしょうか?
赤文字への変更をいつ行ったのかという情報をどこか(同シート内、別シート、外部ファイル)に保存して
その情報と照合して、赤文字で変更後5日以上経過していているものを任意タイミングで黒文字に戻せばよい
後出し条件なので、コードはご自分でどうぞ
>>968 リストって言ってもExcelには入力規則、フォーム、コントロール、ユーザーフォームといろんなリストがあるが、
入力規則やフォームツールなら、とりあえず絞り込みは「リスト 連動」などでググれば出てくる
コントロール、ユーザーフォームの方は、VB6のComboBox、ListBoxと同じなのでそっちを調べて
点滅は入力規則ならWorksheet_Changeイベントで変更を取って、Interior.Colorを任意間隔で交互に変更
フォームツールの場合はおそらく無理、コントロール、ユーザーフォームは上記と同じくVB6参照
972 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 12:24:50
Excel VBA でMSCommを使おうとしていますが、
On_commイベントでの受信ができません。
Windows XP Pro SP2, Excel 2003 SP1, VBA(VB6.0相当?)
PC: Excel使用, 外部装置:何か来ると、ステータスを返す
以下のプロシージャで"hoge"が送れました。
Private Sub Command1_Click()
Set mscomm1 = CreateObject("MSCOMMLib.MSComm.1")
mscomm1.CommPort = 1
mscomm1.Settings = "9600,N,8,1"
mscomm1.PortOpen = True
mscomm1.Output = "hoge"
mscomm1.PortOpen = False
End Sub
外部装置からステータスが返ってきますが、下のイベントは発生しません。
Sub MSComm1_OnComm()
MsgBox "fuga"
End Sub
Comman1_Click() 内で Wait を使うと拾えます。
If Application.Wait(Now + TimeValue("0:00:1")) Then
data = mscomm1.Input
End If
アドバイスお願いします。
973 :
907:2005/12/08(木) 12:36:16
>>907 ありがとうございます。後出しですみません。ただ
>>赤文字への変更をいつ行ったのかという情報ってのがどんな文で示したらいいのかさっぱり??
ご教授お願いします。
976 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 14:01:36
みなさん即答できると思うのですが、シートを開いたときに文字を表示する方法教えて下さい。
たぶん情報がきちんと出てれば即答出来るけど
(シート上に表示するのか、メッセージダイアログで表示するのか
シートを開くというのはシートをアクティブにすることなのか、ブックを開くの間違いなのか、etc・・・)
情報が少なすぎて回答出来ないので、
>>2※を読んだ上でご自分で頑張ってください
978 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 14:09:03
シートを開いたときに文字を表示する方法。
それはシートを開いたときに文字を入力すればいいんだよ。
入力無しでとも自動でとも書いてないもんな。
これも文字を表示出来る方法には違いない。
よし、解決したな。
980 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 14:46:47
> 即答できない人はいりません
もう質問から数十分経ってるし、
今更答えても即答にはならないから、もう回答は要らないってことだね。
>>976 適当なセルに「文字」を入力→上書き保存→終了
982 :
960:2005/12/08(木) 16:03:06
>>965 印刷可能領域を標準から最大に変えることで解決しました。
ありがとうございました
984 :
名無しさん@そうだ選挙にいこう:2005/12/08(木) 23:12:14
【1 OSの種類 .】 Windows XP
【2 Excelのバージョン 】 Excel 2003
【3 VBAが使えるか .】 ほんのり
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 エクセル マクロ メーター
マクロを画面固定にして進行具合のメーター表示が可能である、と友人から聞きました。友人自体
は詳細については昔やった事がある程度でvbaのツールボックスが以前のバージョンと異なるため、といった理由で
今はどうやるか即答できませんでした。検索かけたのですが現在具体的な情報がつかめません。結果質問も、どうやるの?
としかいいようがありません。どうやるの?
986 :
984:2005/12/09(金) 00:06:00
>>985 いただきました。良いお年をお迎え下さい。
987 :
名無しさん@そうだ選挙にいこう:2005/12/09(金) 00:52:13
【1 OSの種類 .】 Windows98
【2 Excelのバージョン 】 Excel 98?
【3 VBAが使えるか .】 いいえ
【4 VBAでの回答の可否】 可
【5 検索キーワード 】 三次元グラフ
質問です。
3つの要素(XYZ)から関係性を追っています。
三次元上(X,Y,Z:要素)で棒グラフ(or散布図)を書くことは出来ないでしょうか?
988 :
955:2005/12/09(金) 10:09:21
次スレキボン