ここから本文です

OpenOffice.org Calcについて質問です。例えばA1のセルに値を入れると、値がB1に移...

wkmy_busuさん

2011/12/1021:44:46

OpenOffice.org Calcについて質問です。例えばA1のセルに値を入れると、値がB1に移動してA1の値はなくなる。次にA1に値を入れると今度はB2に値が移動し・・・ ということはどうすれば出来ますか?

マクロを使うと出来ると聞いたのですが、全くわからないので教えて下さい。

閲覧数:
858
回答数:
1
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

編集あり2011/12/1312:37:16

OpenOffice.org において、
Calc 3.3 では、
各シ-トの7つのイベントに、マクロを割り当てることが、
可能となりました。

http://openoffice.sblo.jp/article/39711359.html

上記URL先より抜粋(7つのイベント)

◇ シートがアクティブになった
◇ シートがアクティブでなくなった
◇ 選択範囲が変更された
◇ ダブルクリックした
◇ 右クリックした
◇ 計算式を計算した
◇ 内容が変更された


ご質問内容に沿うなら、
下段7つ目の、

””内容が変更された””

時に、
マクロ処理をさせることで、
セル[A1] での入力に応じ、
セル[B1]・・ [B2]・・ [B3]・・・ と順次、
自動転記させていくことは可能と思われます。

シ-トイベントの設定方法は、
上記URL先にもあるように、

1.シート名のタブ上で右クリック
2.メニューの「シ-トイベント(E)」を選択


[イベント]
→ [内容が変更した時]
に設定、
[割り当て]
→[マクロ]

で、予めマクロ登録しておいた、
マクロ(名)を、
割り当てる、という手順になると思います。

そのマクロコ-ドなのですが、
セル[A1] に入力する値が、
文字列、、数値列、、数式の違いによって、
多少異なってくる、という事を
ご理解ください。

下記に、
文字列での入力の場合を想定した、
コ-ド例を提示しますが、
あくまでも当方作成のものですので、
もっとスマ-トなコ-ドがあれば、
差し替えて下さい。


尚、OpenOffice.org で、
マクロを登録する方法は、
検索されて、確認してみて下さい。

基本的には、
「ツール」
→「マクロ」
→「マクロの管理」
→「OpenOffice.org Basic」



Sub CellTenki()
Dim oRange As Object
Dim oColumn As Object,oRanges As object
Dim nRangeCount As Long, nBottomRow As Long

oColumn = ThisComponent.Sheets(0).getColumns().getByIndex(1)
oRanges = oColumn.queryContentCells(31)
nRangeCount = oRanges.getCount()

If ThisComponent.Sheets(0).getCellByPosition(0, 0).STRING = "" Then Exit Sub

If nRangeCount = 0 Then
nBottomRow =-1
Else
oRange = oRanges.getByIndex(nRangeCount - 1)
nBottomRow = oRange.getRangeAddress().EndRow
End If

nBr=nBottomRow

ThisComponent.addActionLock()

' ↓ "STRING"部分を、"VALUE"に変えますと、数値列仕様になります。
ThisComponent.Sheets(0).getCellByPosition(1,nBr+1).STRING = _
ThisComponent.Sheets(0).getCellByPosition(0, 0).STRING
ThisComponent.Sheets(0).getCellByPosition(0, 0).ClearContents(511)

ThisComponent.removeActionLock()

End Sub





文字列の場合 STRING
数値列の場合 VALUE
数式の場合 FORMULA


カット&ぺ-スト

という処理をマクロ化して、
セル書式、セルのプロパテイを
そのまま転記するコ-ドが書ければ、
もっと汎用性が高まるかもしれません。

質問した人からのコメント

2011/12/13 22:46:36

笑う 出来ました!ありがとうございました!

ちょい足しを取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

ID/ニックネームを選択し、「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問や知恵ノートは選択されたID/ニックネームのMy知恵袋で確認できます。

ほかのID/ニックネームで利用登録する